Dammit, I thought it was the other way around - that 
org.activemq.jndi.ActiveMQInitialContextFactory had replaced 
org.apache.activemq.jndi.ActiveMQInitialContextFactory. Thank you; this error 
is gone. Now I just need to iron out the rest...

Cheers,
Anne

-----Ursprüngliche Nachricht-----
Von: Willem Jiang [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 5. Dezember 2008 15:24
An: [email protected]
Betreff: Re: Error using JMS transport

Hi
Your wsdl is out of date (it could be the ActiveMQ 4.0.x time story".
You need to use org.apache.activemq.jndi.ActiveMQInitialContextFactory
instead of org.activemq.jndi.ActiveMQInitialContextFactory as the
java.naming.factory.initial in your version.

Activemq changed it's package name when it was accepted as apache
project for about 2 years.

Willem



Diefenbach Anne wrote:
> 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