2010-12-01 16 views
3

在WSDL文件我有以下行:org.apache.cxf.BusException:沒有DestinationFactory的被發現的命名空間http://schemas.xmlsoap.org/soap/http/

當我部署web應用(在JBoss 5.1.0),並嘗試訪問WSDL我得到以下異常:

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) 

任何人都知道這個問題怎麼解決?

回答

0

你在做wsdl的第一次開發,並在你的WebService.wsdlLocation註解中指定wsdlLocation嗎?

「http://schemas.xmlsoap.org/soap/http/」將與wsdl2java和很多東西一起工作。但是,如果您使用wsdlLocation進行wsdl首次部署,它可能會很挑剔,並且不像最後的額外斜線。所以在你的wsdl中使用transport =「http://schemas.xmlsoap.org/soap/http」(最後沒有斜線)。

+2

我有同樣的問題,不幸的是我無法從你的答案中找出你要做什麼。你能解釋一下嗎? – 2011-05-19 10:30:45

6

我有同樣的問題。並沒有任何谷歌的東西是有道理的。

<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

如果你正在運行CXF 3.x中,但在你的類路徑CXF 2.x的罐子,這可能發生:我在的情況下,我是缺少在Spring上下文文件中的以下發現。找到你的罐子版本是這樣的:

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