cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dNA....@gmx.de
Subject CXF Webservice with SoapOverJMS and EJB3 on JBoss
Date Wed, 05 Apr 2017 11:06:55 GMT
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" );

Mime
View raw message