Hi guys,
im currently stuck with the following problem, maybe you can give me a hint to 
solve this (environment JBoss EAP 7.0.4)
 
EJB with one simple method, that should be used in a CXF Webservice with 
SoapOverJMS (deployment in one war)
The reference to the simpleEjb in the SimpleJMSEndpoint class is always null. 
Also annotations like @PostConstruct don't work in the SimpleJMSEndpoint.
Although if i'm doing a direct JNDI lookup, i can retrieve the EJB and make the 
method call (this works only if the SimpleEJB is also annotated with @EJB and 
the jndi name is set).
 
If i'm using an HTTPEndpoint the injection in the SimpleHTTPEndpoint class 
works fine. (deployed also in the same war)
 
Does anybody have a hint how to inject the ejb in case of JMS tranport using 
standard jee annotations or isn't this possible at all?
 
Thanks and regards,
Mitch
 
----------- EJB
@Stateless
@EJB(name = "java:global/SimpleEJB", beanInterface=SimpleEJB.class)
public class SimpleEJB {
    public String getInfo() {        
        return "info";
    }    
}
 
----------------JMS-Endpoint
 
@WebService( serviceName = "SimpleService", portName = "JmsEndpointPort", 
wsdlLocation = "simpleservice.wsdl", targetNamespace = 
"http://services/samples/simple"; )
@SOAPBinding( style = SOAPBinding.Style.RPC )
public class SimpleJMSEndpoint extends SimpleServiceEndpoint
{
@EJB
SimpleEJB ejb;
 
   @WebMethod
    @Override
    public String getInfo( String in )
    {
            return ejb.getInfo(); // At this Point i get an NPE
     }
}
 
------------------- HTTP-Endpoint
@WebService
public class SimpleHTTPEndpoint implements Simple
{
    @EJB
    SimpleEJB ejb;

    @Override
    public String getInfo( String in )
    {
        System.out.println( "Starting hTTP endpoint method getInfo" );
        return ejb.getSomeString(); // Works fine
    }
 
--------------------- direct JNDI lookup
Context initCtx = new InitialContext();
SimpleEJB ejb1 = (SimpleEJB) initCtx.lookup( "java:global/SimpleEJB" );

Reply via email to