I work on leisure services and learning EJB at the same time. I just run my application with a simple chain controller → service → DAO, and my EJB hotelService is not entered - it is zero.
@Path("/hotels") public class HotelsController { @EJB private HotelService hotelService; @GET @Produces(MediaType.APPLICATION_JSON) public Response getHotelsList(@QueryParam("startDate") String startDate, @QueryParam("endDate") String endDate) { List<HotelsEntity> list = hotelService.getAll(); return ResponseFactory.response(Response.Status.OK, list); } }
Service
@Stateless @EJB(beanInterface = HotelService.class, name = "HotelService") public class HotelService { @EJB private HotelDAO hotelDAO; public List<HotelsEntity> getAll() { return hotelDAO.getAll(); } public Hotel getHotelById(final String id) { return hotelDAO.getHotelById(id); } }
DAO
@Stateless public class HotelDAO { @PersistenceContext(unitName = Constants.PERSISTENCE_UNIT) private EntityManager em; public List<HotelsEntity> getAll() {
I thought the problem might be to some extent during the stagnation of HotelDAO, but even without it, mt HotelService is null.
Do you have any opinion where the problem is?
I am using glassfish 4.0 My pom:
<modelVersion>4.0.0</modelVersion> <groupId>HospitalityRestServer</groupId> <artifactId>HospitalityRestServer</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>HospitalityRestServer Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.5.Final</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>annotations-api</artifactId> <version>6.0.29</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.ejb</artifactId> <version>3.1</version> </dependency> </dependencies>
Log:
[2014-04-28T17:58:05.828+0400] [glassfish 4.0] [WARNING] [] [javax.enterprise.web] tid: _ThreadID=22 _ThreadName=http-listener-1(4)] [timeMillis: 1398693485828] [levelValue: 900] [[
StandardWrapperValve [javax.ws.rs.core.Application]: Servlet.service () for the javax.ws.rs.core.Application servlet exception java.lang.NullPointerException at com.example.controller.HotelsController.getHotelsList (HotelsController.java: 29) at sun.reflect.NativeMethodAccessorImpl.invoke0 (native method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodjavaor:43reccess.lccessorccessleccess.lccessorl .Method.invoke (Method.java:606) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory $ 1.invoke (ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.Aource invoke (AbstractJavaResourceMethodDispatcher.java:125) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider $ ResponseOutInvoker.doDispatch (JavaResourceMethodDispatc herProvider.java:152) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch (AbstractJavaResourceMethodDispatcher.java:91) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke (Resource) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply (ResourceMethodInvoker.javahaps41) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply (ResourceMethodInvoker.java:101) at org.glassfish.jersey.server .ServerRuntime $ 1.run (ServerRuntime.java:224) on org.glassfish.jersey.internal.Errors $ 1.call (Errors.java:271) on org.glassfish.jersey.internal.Errors $ 1.call (Errors.java: 267) at org.glassfish.jersey.internal.Errors.process (Errors.javahaps15) at org.glassfish.jersey.internal.Errors.process (Errors.java:297) at org.glassfish.jersey.internal.Errors .process (Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope (RequestScope.javahaps17) at org.glassfish.jersey.ser ver.ServerRuntime.process (ServerRuntime.java:198) at org.glassfish.jersey.server.ApplicationHandler.handle (ApplicationHandler.java:946) at org.glassfish.jersey.servlet.WebComponent.service (WebComponent.java:323) at org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.javahaps72) at org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.javahaps35) at org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.java:218) at org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.javahaps18) at org.apache. catalina.core.StandardContextValve.invoke (StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline. 673) at com.sun.enterprise.web.WebPipeline.invoke (WebPipeline.java:99) at org.apache.catalina. core.StandardHostValve.invoke (StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.javahaps57) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService (HttpHandler.java:191) at org.glassfish.grizzly .http.server.HttpHandler.doHandle (HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead (HttpServerFilter.java:189) at org.glassfish.grizzly.filterecute.ecececececececec ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter (DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart (DefaultFilterChain.javalass .filterchain.DefaultFilterChain.execute (DefaultFilterChain.java:136) at org.glassfish.grizzly. filterchain.DefaultFilterChain.process (DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute (ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent (TCPNIOTransport.) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent (AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0 (WorkerThreadIOStrategy.java:115) in org.glassfish.grizzlystrate.read. $ 100 (WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run (WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Workerava64Work at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run (AbstractThreadPool.java=44) in java.lang.Thread.run (Thread.java:745)]]
source share