我使用Apache CXF开发了一个Web服务,并将其部署在Apache Tomcat上,并且工作正常。
现在我需要在JBoss Fuse ESB(jboss-fuse-6.0.0)上部署它。我尝试通过在deploy文件夹中复制它来部署它,但无法使用?wsdl
获取WSDL定义,并在fuse.log
中发现以下错误:
16:28:49,889 | ERROR | Executor: 1 | ContextLoader | 174 - org.springframework.web - 3.1.3.RELEASE | Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/cxf-beans.xml]; nested exception is org.springframework.beans.FatalBeanException: Class [org.apache.cxf.jaxws.spring.NamespaceHandler] for namespace [http://cxf.apache.org/jaxws] does not implement the [org.springframework.beans.factory.xml.NamespaceHandler] interface at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)[105:org.springframework.beans:3.1.3.RELEASE] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[105:org.springframework.beans:3.1.3.RELEASE] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[105:org.springframework.beans:3.1.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)[105:org.springframework.beans:3.1.3.RELEASE]
查找以下cxf-bean.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd
">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<jaxws:endpoint id="hellows" implementor="com.irk.test.ws.HelloWsImpl" address="/hellows"/>
</beans>
请帮助我了解如何在Fuse ESB上部署它以及需要哪种配置更改。