Xfire 与 Spring2.0 冲突的解决方法

Xfire 与 Spring2.0 冲突的解决办法
异常:org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".

解决方法:

由于xFire1.2包含spring1.2.6.jar包,于工程中的spring2.0.jar冲突,删除spring.1.2.6.jar 保留spring2.0.jar。

删除后仍然报错 :

org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognizedxbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0

解决方法:

官方解决方法:

Spring 2.x support
Because of Spring 2.x new feature, services.xml default namespace must not be declared on the root element of configuration ( beans ) and need to be moved to <service> tag level



意思是新的spring2.0功能中不允许将在根节点配置属性,需要将要配置的属性移到service节点。

修改services.xml

原配置文件:

<?xml version="1.0" encoding="UTF-8"?>

 

<beans xmlns="http://xfire.codehaus.org/config/1.0">

 

    <service>

       <name>RevokeCert</name>

       <serviceClass>com.asconfig.webservice.IRevokeCert</serviceClass>

       <implementationClass> com.asconfig.webservice.RevokeCertImpl</implementationClass>

       <style>wrapped</style>

       <use>literal</use>

       <scope>application</scope>

    </service></beans>






修改后的配置文件

<?xml version="1.0" encoding="UTF-8"?>

 

<beans>

 

    <service xmlns="http://xfire.codehaus.org/config/1.0">

       <name>RevokeCert</name>

       <serviceClass>com.asconfig.webservice.IRevokeCert</serviceClass>

       <implementationClass>com.asconfig.webservice.RevokeCertImpl</implementationClass>

       <style>wrapped</style>

       <use>literal</use>

       <scope>application</scope>

    </service></beans>