开发基于xfire的webservice的两种方式

一. 通过MyEclipse工具,导入webservice库到web project或新建webservice工程。自动将普通的javabean(必须要以接口和实现类的方式出现)发布为webservice。在WebRoot下生成一个WebServices目录,目录下有一个services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>GetUserInfo</name>
<serviceClass>
com.wltx.webservice.server.UserInfoInterfase
</serviceClass>
<implementationClass>
com.wltx.webservice.server.UserInfoImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>
在web.xml文件中会自动配置
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
在浏览器输入访问路径+services,会出现一个wsdl的链接,成功。
【也可以利用Altova XMLSpy 工具,在soap中create new soap request,输入wsdl链接,配置参数,然后send,可以得到返回结果】
《注意: xfire1.2.6自带的是spring1.2.6,如果项目中有spring更高版本的jar文件,要删除掉,这点不好》
二、xfire和spring集成,好处:由spring容器管理,可以注入
service或DAO
修改上面工程:
1、 修改web.xml
<servlet>
<servlet-name>XFireServlet</servlet-name>
<!-- 去掉工具生成,集成spring -->
<!-- <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>-->
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
2、 删除WebRoot下的WebServices目录
3、 如果是spring分散装备,新建application-webservice.xml
第一步添加:
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
第二步:
将自己的service接口和实现类做配置
<bean id="getUserInfo" class="com.wltx.webservice.server.UserInfoImpl" singleton="true">
<property name="manageUserService">
<ref bean="manageUserService" />
</property>
</bean>
<bean name="GetUserInfoService" class="org.codehaus.xfire.spring.ServiceBean">
<property name="serviceBean" ref="getUserInfo"/>
<property name="serviceClass" value="com.wltx.webservice.server.UserInfoInterfase"/> </bean>

 

你可能感兴趣的:(spring,webservice,xfire,SOAP)