EJB Stateless Bean ist immer null im REST WebService

Millman

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:
@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:
@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:
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)
 

caleb

Mitglied
Verwende
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;
 

rholzmueller

Mitglied
Ich musste, damit die Injection mit
Code:
@EJB
in einer RestFul Resource funktioniert, den RestFul Service selbst als EJB (
Code:
@Stateless
) definieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Property-Datei in Stateless-Bean laden Application Tier 8
M Entity Bean wird nicht in stateless Session Bean injeziert Application Tier 3
V Stateless-Bean soll Info aus Stateful-Bean holen Application Tier 3
M App auf EJB Stateless Beans umstellen - NPE Application Tier 4
M Unterschied Stateless,Stateful Application Tier 3
A 2 Stateless Beans 1 Local Interface? Application Tier 4
S exception: Could not create stateless EJB StatelessEJB Application Tier 1
K EJB Session Bean Application Tier 2
V EJB: Eine Remote Bean soll eine Local Bean ansprechen und dem Client übergeben Application Tier 2
B Spring context:component-scan: No such bean definition Application Tier 2
T ERROR: Bean name must not be empty! Application Tier 3
P Timer Bean Application Tier 11
B Message-Driven Bean reagiert nicht Application Tier 3
A Stateful Session Bean will nicht "stateful" sein Application Tier 18
S Statefull Session Bean für UserLogin Application Tier 4
O javax.naming.NoInitialContextException - Remote Session Bean Application Tier 2
O Anfängerproblem mit Session Bean Application Tier 3
N Kummunikation Application Client - Session Bean Application Tier 8
J Session-Bean aufräumen bei Timeout bei Seam/EJB Application Tier 6
F Time-out Zeit für Session-Bean Application Tier 4
byte [Spring] Referenced Bean not found Application Tier 2
N QuartzTrigger Methode getNextFireTime() liefert immer null Application Tier 2

Ähnliche Java Themen

Neue Themen


Oben