依赖

        <!-- 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{
	......
}

访问

image