...
In the New EAR Application Project window select the Generate Deployment Descriptor checkbox.
geronimo-sample-ear-generatedd.png|align=center
Press Next.
Fill in the Geronimo Deployment Plan's fields with the following values (you want to know more why they're important? Read it on in the Geronimo documentation - http://cwiki.apache.org/GMOxDOC12/deployment-plans.html1.2 Documentation - Deployment plans):
- Group Id: sampleear
- Artifact Id: sample-ear
- Artifact Type: ear
...
You should now have the following project structure.
Note | |
---|---|
Wiki Markup | Don't worry about the error *cvc-complex-type.2.4.b: The content of element 'application' is not complete . One of '{"http://java.sun.com/xml/ns/javaee":description, "http://java.sun.com/xml/ns/javaee":display-name, "http://java.sun.com/xml/ns/javaee":icon, "http://java. sun. com/xml/ns/javaee":module}' is expected. *for now. You'll fix it in the next step when you define an ejb module (and webapp module afterwards). |
Create EJB project
The next step is to create an EJB project to hold your EJBs. Press Ctrl-N and select EJB Project in EJB category.
...
- Group Id: sampleear
- Artifact Id: sample-ejb
- Artifact Type: ejb
Press Finish.
You should now have the following project structure.
Note |
---|
Remove ejbModule/META-INF/openejb-jar.xml file in the SampleEJB project as it leads to causes deployment issues. |
Create Dynamic Web Project
...
- Group Id: sampleear
- Artifact Id: sample-war
- Artifact Type: war
Press Finish.
You should now have the following project structure.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package sampleear; import java.io.IOException; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; @EJB RemoteBusinessInterface remoteBusinessIntf; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); if (name == null || name.length() == 0) { name = "anonymous"; } response.getWriter().write(remoteBusinessIntf.sayHello(name)); } } |
Create application.xml
Note |
---|
It appears that the file is not created by default and the application could not be deployed to any Java EE 5-compliant application server, Geronimo including. We need to define it manually. Don't know whether it's a bug in Eclipse or Geronimo Eclipse Plugin. |
Create application.xml deployment descriptor in EarContent/META-INF directory of the SampleEAR project as follows.
...
<?xml version="1.0" encoding="ASCII"?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
version="5">
<display-name>SampleEAR</display-name>
<module>
<ejb>SampleEJB.jar</ejb>
</module>
<module>
<web>
<web-uri>SampleWAR.war</web-uri>
<context-root>/SampleWAR</context-root>
</web>
</module>
</application>
Run it!
After a very hard 4-minute development it's time to give it a shot and see if it works. Not much time left so hurry up!
...
After a few seconds, Geronimo should be up and running with the enterprise application published. Open up the browser of your choice and go to http://localhost:8080/SampleWAR.
Type in any name you want, e.g. Jacek and press Press me! button.
...