EJB Stateless Bean ist immer null im REST WebService

Diskutiere EJB Stateless Bean ist immer null im REST WebService im Application Tier Forum; Hallo Community, ich hoffe ihr könnt mir bei folgendem Problem helfen: Ich habe ein WebProjekt mit Eclipse als dynamisches WebProjekt erstellt...

  1. Millman
    Millman Neues Mitglied
    Hallo Community,

    ich hoffe ihr könnt mir bei folgendem Problem helfen:
    Ich habe ein WebProjekt mit Eclipse als dynamisches WebProjekt erstellt und verwende als Application Server den Glassfish3. Daneben nutze ich EJB 3.0 um eine stateless bean als Facade (@stateless Annotation) zu erzeugen, welche die folgende Business Logik implementiert:
    Code (Text):
    @Stateless
    public class Facade {  

    public void test(){    
    System.out.println("test hat geklappt!!");
    }  
    }
    Zusätzlich verwende ich eine RESTRessource um den REST WebService anzubieten welcher meine EJB (@EJB Annotation) verwendet:
    Code (Text):
    @RequestScoped
    @Path("/prescriptions")
    public class Ressource {

        @EJB
        private Facade facade;

        public Ressource() {
            super();
        }

        @GET
        @Path("/user/{userid}")
        @Produces(MediaType.APPLICATION_JSON)
        public void getUser(@PathParam("userid") String userid) {

            facade.test();

        }  

    }
    Obwohl ich in den REST-WS komme und aufrufen kann, ist meine EJB immer null und ich finde keinen Grund wieso.

    Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet. Falls ihr mehr Informationen benötigt, sagt mir einfach bescheid.

    Vielen Dank im Voraus für eure Hilfe,
    Florian

    PS: Dies ist die Fehlermeldung, die ich immer bekomme:
    Code (Text):
    INFO: Portable JNDI names for EJB Facade : [java:global/TestProject/Facade,java:global/TestProject/Facade!webservices.Facade]  
    INFO: Portable JNDI names for EJB Facade : [java:global/TestProject/Facade, java:global/TestProject/Facade!webservices.Facade]
    INFO: Scanning for root resource and provider classes in the packages:
    webservices
    INFO: Root resource classes found:
    class webservices.Ressource
    INFO: No provider classes found.
    INFO: Initiating Jersey application, version 'Jersey: 1.5 01/14/2011 12:36 PM'

    SCHWERWIEGEND: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container    
    java.lang.NullPointerException

    at webservices.Ressource.getUser(Ressource.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:150)
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:70)
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:279)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:86)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:74)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1347)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1279)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1229)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1219)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:419)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:662)
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. caleb
    caleb Neues Mitglied
    Verwende
    Code (Java):

    import com.sun.jersey.spi.inject.Inject;
    ...
    @Path("/x")
    public class XyService {

      /**
       * the standard javax.inject.inject does not work here!
       */

      @Inject
      private XyBean xBean;

     
     
  4. rholzmueller
    rholzmueller Neues Mitglied
    Ich musste, damit die Injection mit
    Code (Text):
    @EJB
    in einer RestFul Resource funktioniert, den RestFul Service selbst als EJB (
    Code (Text):
    @Stateless
    ) definieren.
     
  5. caleb
    caleb Neues Mitglied
    Das ist ebenfalls eine gültige Lösung wobei hier dann das @javax.inject.Inject benutzt werden sollte. @EJB sollte vereinfacht gesagt nur für Remote EJB eingesetzt werden. Unter anderem weil es keine @Alternatives zulässt.

    Quelle: https://community.jboss.org/thread/179388
     
Die Seite wird geladen...

EJB Stateless Bean ist immer null im REST WebService - Ähnliche Themen

URL-Mapping mit Stateless Beans
URL-Mapping mit Stateless Beans im Forum Web Tier
Hello World mit Stateless Session Bean - Was mache ich falsch?
Hello World mit Stateless Session Bean - Was mache ich falsch? im Forum Allgemeines EE
App auf EJB Stateless Beans umstellen - NPE
App auf EJB Stateless Beans umstellen - NPE im Forum Application Tier
Property-Datei in Stateless-Bean laden
Property-Datei in Stateless-Bean laden im Forum Application Tier
Frage zu Stateless Session Beans
Frage zu Stateless Session Beans im Forum Allgemeine Java-Themen
Thema: EJB Stateless Bean ist immer null im REST WebService