[jboss-user] [EJB 3.0] - Is annotation enough for deploying a session bean?

dan jboss do-not-reply at jboss.com
Fri Sep 12 18:15:49 EDT 2008


Hi,

I am using jboss-4.2.3.GA with Java 5. I have created a session bean like this:

@Stateless
  | @Local( { MyBeanInterface.class })
  | public class MyBean implements MyBeanLocal, MyBeanInterface {
  |  ...
  | 
  | }
  | 
Also created a servlet like this:

public class MyServlet extends HttpServlet {
  | 	private static final long serialVersionUID = 1L;
  |        
  | 	@EJB
  | 	private MyBean myBean;
  | 
  | 	public void service(HttpServletRequest request,
  | 			HttpServletResponse response) throws ServletException, IOException {
  | 		System.out.println("the servlet MyServlet has been invoked");
  | 		if (myBean == null) {
  | 			                        System.out.println("myBean is NULL");
  | 		} else {
  | 			System.out.println("myBean is not NULL");
  | 		}
  |                 ...
  |         }
  | 
  |         ...
  | 
  | }
  | 
I put everything in an ear file and deployed it in the server. When I try to invoke the servlet it complains that the bean has not been properly injected into the servlet. Here is the log on the server:

anonymous wrote : 14:38:02,568 INFO  [EARDeployer] Init J2EE application: file:/C:/jboss-4.2.3.GA/server/jms/deploy/myEnterpriseProject.ear
  | 14:38:04,928 INFO  [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateless.StatelessContainer
  | 14:38:04,936 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=myEnterpriseProject.ear,jar=myEjbProject.jar,name=MyBean,
  | service=EJB3 with dependencies:
  | 14:38:04,959 INFO  [EJBContainer] STARTED EJB: myPackage.MyBean ejbName: MyBean
  | 14:38:10,958 INFO  [EJB3Deployer] Deployed: file:/C:/jboss-4.2.3.GA/server/jms/tmp/deploy/tmp38195myEnterpriseProject.ear-contents/m
  | yEjbProject.jar
  | 14:38:11,067 INFO  [TomcatDeployer] deploy, ctxPath=/abc, warUrl=.../tmp/deploy/tmp38195myEnterpriseProject.ear-contents/myDynamicWe
  | bProject-exp.war/
  | 14:38:13,172 INFO  [EARDeployer] Started J2EE application: file:/C:/jboss-4.2.3.GA/server/jms/deploy/myEnterpriseProject.ear
  | 14:38:23,255 INFO  [STDOUT] myBean is NULL
  | 14:38:23,257 ERROR [[MyServlet]] Servlet.service() for servlet MyServlet threw exception
  | java.lang.NullPointerException
  |         at myServletPackage.MyServlet.service(MyServlet.java:115)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  |         at java.lang.Thread.run(Thread.java:619)
  | 
  | I can see MyBean starting but it is not in the servlet. Do I still need to create the deployment ejb-jar.xml file for the jar file containing the bean? I thought the annotation would do the job for the trivial case.
I would appreciate any suggestion.
Thanks.

Dan


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4176280#4176280

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4176280



More information about the jboss-user mailing list