springboot集成Xfire发布webServices
依赖#
<!-- webservice start -->
<dependency>
<groupId>org.codehaus.xfire</groupId>
<artifactId>xfire-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<!-- webservice end -->
发布WEBSERVICES#
applicationContext.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:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 发布webservice -->
<bean name="collectOrderServer" class="com.xxx.sale.inf.sale.controller.server.CollectOrderServer"/>
<bean name="userService" class="com.xxx.sale.inf.sale.controller.server.UserService"/>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/collectOrderService.ws">
<ref bean="collectOrderWebService" />
</entry>
<entry key="/userService.ws">
<ref bean="userWebService" />
</entry>
</map>
</property>
</bean>
<!-- 使用XFire导出器 -->
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
</bean>
<bean id="baseHandlerWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
<property name="inHandlers" >
<list>
<bean class="com.iwhalecloud.sale.inf.sale.handler.WebserviceServerHandler" />
</list>
</property>
<property name="outHandlers">
<list>
<bean class="com.iwhalecloud.sale.inf.sale.handler.WebserviceOutHandler" />
</list>
</property>
<property name="faultHandlers">
<list>
<bean class="com.iwhalecloud.sale.inf.sale.handler.WebserviceFaultHandler" />
</list>
</property>
</bean>
<bean id="collectOrderWebService" parent="baseWebService" >
<property name="serviceBean" ref="collectOrderServer"/>
<property name="serviceClass" value="com.xxx.sale.inf.sale.icontroller.server.ICollectOrderServer" />
</bean>
<bean id="userWebService" parent="baseWebService" >
<property name="serviceBean" ref="userService"/>
<property name="serviceClass" value="com.xxx.sale.inf.sale.icontroller.server.IUserService" />
</bean>
<!-- xfire.xml 配置 -->
<bean id="xfire.serviceRegistry"
class="org.codehaus.xfire.service.DefaultServiceRegistry"/>
<bean id="xfire.transportManager"
class="org.codehaus.xfire.transport.DefaultTransportManager"
init-method="initialize" destroy-method="dispose">
</bean>
<bean id="xfire" class="org.codehaus.xfire.DefaultXFire">
<constructor-arg index="0" ref="xfire.serviceRegistry"/>
<constructor-arg index="1" ref="xfire.transportManager"/>
</bean>
<bean id="xfire.typeMappingRegistry"
class="org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry"
init-method="createDefaultMappings" >
</bean>
<bean id="xfire.aegisBindingProvider"
class="org.codehaus.xfire.aegis.AegisBindingProvider">
<constructor-arg index="0" ref="xfire.typeMappingRegistry"/>
</bean>
<bean id="xfire.serviceFactory"
class="org.codehaus.xfire.service.binding.ObjectServiceFactory">
<constructor-arg index="0" ref="xfire.transportManager"/>
<constructor-arg index="1" ref="xfire.aegisBindingProvider"/>
</bean>
<bean id="xfire.servletController"
class="org.codehaus.xfire.transport.http.XFireServletController">
<constructor-arg ref="xfire"/>
</bean>
<bean id="xfire.messageServiceFactory"
class="org.codehaus.xfire.service.binding.ObjectServiceFactory">
<constructor-arg index="0" ref="xfire.transportManager" />
<constructor-arg index="1" ref="xfire.messageBindingProvider" />
<property name="style" value="message" />
</bean>
<bean id="xfire.messageBindingProvider"
class="org.codehaus.xfire.service.binding.MessageBindingProvider" />
</beans>
java 配置XfireServlet#
@Configuration
@ImportResource(locations = {"classpath:applicationContext.xml"})
public class WebServiceBootConfig {
@Bean
public ServletRegistrationBean<XFireSpringServlet> xfireServlet() {
ServletRegistrationBean<XFireSpringServlet> registrationBean = new ServletRegistrationBean<>(new XFireSpringServlet(),"/ws/*");
registrationBean.setName("Xfire");
return registrationBean;
}
}
接口类实例:#
@WebService
public interface ICollectOrderServer {
SoapContent saveCollectOrder(String json);
}
实现类实例:#
@WebService
public class CollectOrderServer implements ICollectOrderServer{
......
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)