Hi,

 

I am trying to write a web service using JMS publish-subscribe as a transport, 
developing in Eclipse 3.3 with FUSE Services Framework 2.1.3.1. When I try to 
run my server, I receive an error caused by  "java.lang.ClassNotFoundException: 
org.activemq.jndi.ActiveMQInitialContextFactory". However, I am pretty sure I 
have added the correct JARs to the build path; both 
activemq-core-5.1.0.2-fuse.jar and activemq-all-5.1.0.2-fuse.jar should contain 
this class. Does anyone know what else might cause this error?

 

The JMS specific parts of my WSDL file (I used wsdl2java to build this service) 
look like this:

 

  <wsdl:binding name="Einsatzleitung_jms" type="tns:EnvironmentConsumer">

    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/jms"/>

    <wsdl:operation name="environmentReport">

      <soap:operation soapAction="" style="document"/>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

 

<wsdl:service name="EinsatzleitungConsumer">

    <wsdl:port binding="tns:Einsatzleitung_jms" 
name="EinsatzleitungConsumer_jmsPort">

      <jms:address destinationStyle="topic" 
jndiConnectionFactoryName="ConnectionFactory"

        jndiDestinationName="dynamicTopics/test.cxf.jmstransport.topic">

      <jms:JMSNamingProperty name="java.naming.provider.url" 
value="tcp://localhost:61616" />

      <jms:JMSNamingProperty name="java.naming.factory.initial" 
value="org.activemq.jndi.ActiveMQInitialContextFactory" />

      </jms:address>

      <jms:client messageType="text"/>

    </wsdl:port>

  </wsdl:service>

 

The server consists of pretty much only the generated code:

 

public class EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server{

 

    protected EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server() throws 
Exception {

        System.out.println("Starting Server");

        Object implementor = new EnvironmentConsumerImpl();

        String address = "http://localhost:8888/soap/EnvironmentConsumer";;

        Endpoint.publish(address, implementor);      //this is where it chokes

    }

    

    public static void main(String args[]) throws Exception { 

        new EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server();

        System.out.println("Server ready..."); 

        

        Thread.sleep(5 * 60 * 1000); 

        System.out.println("Server exiting");

        System.exit(0);

    }

}

 

The complete stacktrace is:

 

Exception in thread "main" javax.xml.ws.WebServiceException: 
java.lang.RuntimeException: javax.naming.NoInitialContextException: Cannot 
instantiate class: org.activemq.jndi.ActiveMQInitialContextFactory [Root 
exception is java.lang.ClassNotFoundException: 
org.activemq.jndi.ActiveMQInitialContextFactory]

            at 
org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:258)

            at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:192)

            at 
org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:74)

            at javax.xml.ws.Endpoint.publish(Endpoint.java:170)

            at 
de.fgan.katastropheneinsatz.EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server.<init>(EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server.java:19)

            at 
de.fgan.katastropheneinsatz.EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server.main(EnvironmentConsumer_EinsatzleitungConsumerJmsPort_Server.java:23)

Caused by: java.lang.RuntimeException: javax.naming.NoInitialContextException: 
Cannot instantiate class: org.activemq.jndi.ActiveMQInitialContextFactory [Root 
exception is java.lang.ClassNotFoundException: 
org.activemq.jndi.ActiveMQInitialContextFactory]

            at 
org.apache.cxf.transport.jms.JMSOldConfigHolder.getConnectionFactoryFromJndi(JMSOldConfigHolder.java:65)

            at 
org.apache.cxf.transport.jms.JMSOldConfigHolder.createJMSConfigurationFromEndpointInfo(JMSOldConfigHolder.java:94)

            at 
org.apache.cxf.transport.jms.JMSTransportFactory.getDestination(JMSTransportFactory.java:74)

            at 
org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90)

            at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69)

            at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:116)

            at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)

            at 
org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:327)

            at 
org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:242)

            ... 5 more

Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: 
org.activemq.jndi.ActiveMQInitialContextFactory [Root exception is 
java.lang.ClassNotFoundException: 
org.activemq.jndi.ActiveMQInitialContextFactory]

            at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)

            at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)

            at javax.naming.InitialContext.init(InitialContext.java:223)

            at javax.naming.InitialContext.<init>(InitialContext.java:197)

            at 
org.springframework.jndi.JndiTemplate.createInitialContext(JndiTemplate.java:114)

            at 
org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:86)

            at 
org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:130)

            at 
org.apache.cxf.transport.jms.JMSOldConfigHolder.getConnectionFactoryFromJndi(JMSOldConfigHolder.java:55)

            ... 13 more

Caused by: java.lang.ClassNotFoundException: 
org.activemq.jndi.ActiveMQInitialContextFactory

            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

            at java.security.AccessController.doPrivileged(Native Method)

            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

            at java.lang.Class.forName0(Native Method)

            at java.lang.Class.forName(Class.java:242)

            at 
com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)

            at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)

            ... 20 more

 

I would be thankful for hints.

 

Regards,

 

Anne Diefenbach

 

- FKIE-KOM -
*************************************************
Forschungsgesellschaft für
Angewandte Naturwissenschaften e. V. (FGAN)
E-Mail:  [EMAIL PROTECTED]
Web:    www.fgan.de
************************************************



 

Reply via email to