2010-12-01 78 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;