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 > ************************************************ > > > > > >
