Posted by
arungupta on July 10, 2008 at 6:03 AM PDT
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.
Here are few issues filed:
- 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
So whether you are using Eclipse, IntelliJ or NetBeans - you can easily
configure GlassFish and deploy your applications directly from within
the IDE. Here are some related links:
However of all the IDEs, NetBeans IDE still provides the most
comprehensive coverage
in terms of development and deployment of
Java
EE applications (JSP, Servles, Java Server Faces, SOAP-based
.NET 3.0-interoperable Web service, RESTful Web services, JPA, EJBs)
and
server
plug-ins (GlassFish, Tomcat, JBoss, WebLogic, WebSphere,
OC4J, SAP BusinessOne and JOnAS).
Technorati: glassfish
intellij
idea jsp servlets
metro
webservices