1、 新建一个Web项目(无需做任何处理)
2、 添加XFire所需要的jar文件
3、 配置web.xml详情见我的空间日志
4、 创建XFire框架的发布文件services.xml,创建目录在class文件夹下:
WEB-INF\classes\META-INF\xfire\services.xml
5、 src创建接口和接口实现类
6、 修改services.xml,发布服务
注意: 如果Web应用用到Spring框架,需要引入xbean-spring.jar
Unrecognized xbean element mapping: services in namespace :
http://xfire.codehaus.org/config/1.0 此问题的解决办法是:
services.xml文件中:
<beans xmlns="http://xfire.codehaus.org/config/1.0" >
<service>
</servie>
</bean>
改为
<beans >
<service xmlns="http://xfire.codehaus.org/config/1.0">
</servie>
</bean>
在往项目中添加XFire时,出现如下报错:
org.xml.sax.SAXParseException: Document root element “beans”, must match DOCTYPE root “null”.
原因:
XFire 1.2 Core Libraries中spring-1.2.6.jar与项目中的spring2冲突.
解决:
MyEclipse6.5中
Window->Preferences->MyEclipse Enterprise Workbench->Project Capabilites->Web Services - XFire
选择spring-1.2.6.jar->Remove->OK
方法二:
同样可以对一个普通的Web Project项目添加XFire框架,方法为,右键项目名>Myeclipse>Add XFire Web Service Capabilities,即可让这个项目具备XFire Project的功能。
用XFire整合Spring WebService时常见异常
1、 Provider com.bea.xml.stream.MXParserFactory not found 原因是缺少jar包wstx-asi.jar和stax-api.jar
2、 java.lang.NoClassDefFoundError: javax/wsdl/WSDLException0 原因是缺少wsdl4j.jar
3、 访问wsdl时Servlet XFireServlet is currently unavailable (xfire报错)原因是缺少xbean-spring.jar
4、 java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory原因是缺少commons-fileupload-1.2.1.jar
5、 Spring1.x中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
</beans>
Beans中不允许有属性,应该为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd">
<beans></beans>