Getting Started with GlassFish in IntelliJ IDEA
Posted by arungupta on July 10, 2008 at 9:03 AM EDT
IntelliJ IDEA 7.0.x include plugins that provide support for configuring GlassFish. This blog provides clear instructions on how to get started by developing and deploying a JSP, Servlet and Web services using GlassFish in IntelliJ. The instructions are using IntelliJ 7.0.3 Build #7757 (with no additional plugins).
- Create a new project
- Clicking on "Create New Project" or "File", "New
Project". Take the default as shown below:

and click on "Next >". - Enter the project name as "GlassFishRocks" and take all
defaults as shown:

and click on "Next >".
- Take another default for the source directory as shown:

and click on "Next >". - For the first time use, JDK needs to be specified. Click
on "+" in top-left corner as shown here:

Take the default option of "JSDK" and specify the Home Directory as shown:

Click on "OK" and then click on "Next >". - Let's create a Web application. Select the list of
technologies as shown:

and finally (phew!) click on "Finish". The expanded project looks like:

- Create a GlassFish configuration
- Select "Run", "Edit Configurations" as shown:

- Click on "+" on top-left corner and select GlassFish as
shown below:

- Specify the location of GlassFish Application server at:

by clicking on "Configure" button and enter the values as shown:

and click on "OK". You can download and install GlassFish v2 UR2 from here.
- Enter the "Name" and select the "Server Domain" as shown:

and click on "OK". - Deploy the Web application
- Click on the green button in the toolbar:

- Click
on the "Fix" button on the bottom and then click "Run". The recently
created Web module is selected to be deployed as shown:

- This starts the GlassFish v2 UR2 Application Server and
deploys the Web application showing the console as:

and also shows the default page at "http://localhost:8080/GlassFishRocksWeb/". You can edit "index.jsp", re-deploy the Web facet and refresh the page to see the updated message.
Notice, even though project's name is "GlassFishRocks", the application context root is "GlassFishRocksWeb". - Now lets create/deploy a new Servlet.
- Create a new project as described above and name it "KillerServlet".
- Right-click on the project and select "New", "Servlet" as
shown:

- Enter the values as shown:

and click on "OK". - The "Java EE: Structure" shows the project as:

- Double-click on "HelloServlet" (nested one) and add the
following fragment to "doGet" method:
java.io.PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet NewServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
NetBeans IDE auto-generates this code for a Servlet ;-) And add the following to "doPost" method:
doGet(request, response); - Double-click on "web.xml" and then select "Assembly Descriptor" tab.
- Click on "+" in Servlet Mappings and specify the values
as:

- Deploy the project (as described above) and output from
Servlet is displayed at "http://localhost:8080/KillerServletWeb/hello".
Read more details in Creating
Java EE Apps and Servlets with IntelliJ IDEA.
Remember the weird context root, it's "KillerServletWeb" instead of "KillerServlet". Now there may be a good reason to do so but nothing obvious. - Now lets create a simple Web service using the Metro Web services stack (the stack baked into GlassFish)
- Create a new project with name "GlassFishWS" following the instructions given above.
- Select the list of technologies as shown:

- The default generated Web service looks like:

- The default generated Web service uses light-weight
Endpoint
API to host the endpoint. Run the Web service by right-clicking in the
editor pane and selecting "Run" as shown or default shortcut of
Ctrl+Shift+F10:

- The WSDL is now available at "http://localhost:9000/HelloWorld?wsdl".
- Right-click on the project and select "New", "Web Service
Client" as shown:

enter the value as "WSClient" and click on "OK". - In the next dialog, enter the values as shown:

- The generated client code has some errors as shown:

Change the code to:
client.HelloWorld service = new client.HelloWorldService().getHelloWorldPort();
//invoke business method
System.out.println(service.sayHelloWorldFrom("Duke"));
and run WSClient.main to see the result as:

Now you deployed a Metro Web service using light-weight Endpoint API. The bundled plugin version is 0.9 build 2 and the steps are so much cleaner from 0.7 version of the plugin.
Read more about Web Services support in IntelliJ IDEA. - Deploying this Web service on GlassFish is really simple.
- Create a new GlassFish configuration as explained above.
- Run the project using this configuration and the Web service is now hosted at "http://localhost:8080/GlassFishWSWeb/services/HelloWorld?wsdl".
- Generate a client using the steps described above.
- JEEAS-180 does not allow an application to be re-deployed to GlassFish and that's why the examples above use different projects.
- JEEAS-181 asks for better integration of GlassFish logs in the IDE.
- JEEAS-182 require support for GlassFish v3 in the GlassFish plugin. Please help by voting for this issue.
- WSVC-61 reports the errors generated in Web services client code
- Debugging Apps on GlassFish using IntelliJ
- GlassFish on Eclipse Ganymede
- NetBeans 6.5 M1: GlassFish v3 + Rails
- Screencast #24: Getting Started with GlassFish v3 TP2
- NetBeans IDE and GlassFish
- GlassFish Plugins
Technorati: glassfish intellij idea jsp servlets metro webservices
Related Topics >>
Blog Links >>
- Login or register to post comments
- Printer-friendly version
- arungupta's blog
- 4580 reads






Comments
by arungupta - 2008-07-11 16:21
harikumarsandhya, http://developers.sun.com/appserver/reference/techart/ws_mgmt.html provide details about Web services monitoring and management in GlassFish. I've asked the author of article to respond to your request as well. dxxvi, GlassFish is supported in NetBeans, Eclipse and IntelliJ - all 3. GlassFish plugin in IntelliJ does not support v3 yet. I filed an issue for that at: http://www.jetbrains.net/jira/browse/JEEAS-182 Please help by voting for this issue. http://www.jetbrains.com/idea/features/java_ejb.html talks about EJB 3.0 support, I may be able to look into later. http://weblogs.javahispano.org/lasterra/entry/glassfish_debug_with_intel... shows how to debug GlassFish using IntelliJ.by dxxvi - 2008-07-11 08:07
If a web application has servlets and jsps only, I guess nobody will choose Glassfish, but they'll choose Tomcat or some servlet container. So it will be helpful (at least for me) if you blog about developing an application using EJB3 in Intellij IDEA and running / debugging that app in GlassFish. I hope that EJB3 app will have separate modules for a war, jpa and session beans. It would be great if you can cover both IDEA 7 and 8 (because Idea 8 supports Seam, JavaScript debugging, SQL, Flex, JSF ... better than Idea 7). And it would be more great if you cover both Glassfish v2 and v3. I know that I request a lot without paying you anything. I cannot afford paying you but I hope somebody can so that you can blog about those wonderful things :) Best regards.by dxxvi - 2008-07-11 08:06
Long live Intellij Idea and Glassfish esp. when JBoss AS 5 is delayed until ... God know when.by harikumarsandhya - 2008-07-11 01:20
can u suggest me how to monitor the web service using glassfish admin console ? I have already set the monitor level to high for the required web service, but I am not able to view the message trace. I am getting the statistics but the message traces are not available