2010-12-01 52 views
3

Dans un fichier wsdl-je la ligne suivante:org.apache.cxf.BusException: Aucun DestinationFactory n'a été trouvé pour l'espace de noms http://schemas.xmlsoap.org/soap/http/

Quand je Déployez le webapplication (sur JBOSS 5.1.0) et essayer d'accéder au wsdl je reçois l'exception suivante:

org.apache.cxf.BusException: No DestinationFactory was found for the namespace http://schemas.xmlsoap.org/soap/http/. 
org.apache.cxf.transport.DestinationFactoryManagerImpl.getDestinationFactory(DestinationFactoryManagerImpl.java:115) 
org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:85) 
org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:118) 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167) 
org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:346) 
org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:259) 
org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:209) 
org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:404) 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:597) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1413) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1374) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
java.security.AccessController.doPrivileged(Native Method) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) 
org.jboss.wsf.stack.cxf.CXFServletExt.loadAdditionalConfigExt(CXFServletExt.java:124) 
org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:101) 
org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:78) 
org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:73) 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
se.marakanda.jboss.LoginContextValve.invoke(LoginContextValve.java:44) 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
java.lang.Thread.run(Thread.java:619) 

Tout le monde sait comment ce problème peut être résolu?

Répondre

0

Le premier développement de wsdl est-il effectué et vous spécifiez wsdlLocation dans votre annotation WebService.wsdlLocation?

"http://schemas.xmlsoap.org/soap/http/" fonctionnera avec wsdl2java et beaucoup de choses. Mais si vous utilisez wsdlLocation pour le premier déploiement de wsdl, il peut être difficile et ne pas aimer la barre oblique supplémentaire à la fin. Donc, utilisez transport = "http://schemas.xmlsoap.org/soap/http" (pas de barre oblique à la fin) dans votre fichier wsdl.

+2

J'ai le même problème, malheureusement je n'ai pas pu savoir de votre réponse quoi faire. Pourriez-vous expliquer? –

6

J'ai eu le même problème. Et aucun des trucs google n'avait de sens. J'ai trouvé dans mon cas que je manque ce qui suit dans le fichier contexte du printemps:

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
1

Si vous utilisez 3.x CxF mais ont des pots CxF 2.x dans votre classpath, cela peut se produire. Trouver la version de vos pots comme ceci:

for fn in cxf*.jar; do echo $fn; unzip -p $fn *pom.xml | grep "<version>" | head -1; done;