使用spring集成xfire开发webservice接口时的namespace和参数名称等配置
2017-08-17 18:45
656 查看
首先是web.xml
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/xfirews/*</url-pattern> <!-- 定义访问的url-->
</servlet-mapping>
用的是spring的DispatcherServlet,如果用其他方式,配置不一定相同。
然后在WEB-INF下新建xfire-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 引入XFire预配置信息 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- 定义访问的url-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/ticketService">
<ref bean="ticketService" />
</entry>
</map>
</property>
</bean>
<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>
<!--这是接口实现类,标注了@WebService注解 -->
<bean id="ticketWS" class="com.demo.web.TicketWebServeImpl">
</bean>
<!--这是接口-->
<bean id="ticketService" parent="baseWebService">
<property name="serviceBean" ref="ticketWS" />
<property name="serviceClass" value="com.demo.web.TicketWebServe" />
<property name="name" value="ticketService"/> <!--指定webservice接口名称-->
<property name="namespace" value="http://webservice.nfss.demo.com/"/> <!--指定命名空间-->
</bean>
</beans>
接着开发用@WebService注解标注了的webservice接口实现类和interface,发布成功后,WSDL的访问地址为:http://ip:port/应用上下文/xfirews/ticketService?wsdl
如果要指定接口调用时的参数名称,而不是默认的in0,in1等,可在接口的interface类所在目录下新建xml文件进行配置,文件名为<接口的interface类同名.aegis.xml>,在xml文件中定义接口每个方法的调用参数名称,如下示例:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
4000
<method name="insertTickets">
<parameter index="0" mappedName="ticketsInfo" />
</method>
<method name="insertInvoiceIntoTicket">
<parameter index="0" mappedName="invoiceInfo" /> <!--这是第一个参数,如果不配置,默认参数名为in0-->
<parameter index="1" mappedName="ticketType" /> <!--这是第一个参数,如果不配置,默认参数名为in1-->
</method>
</mapping>
</mappings>
用的jar包下载链接为:http://download.csdn.net/download/u010295735/9938762
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/xfirews/*</url-pattern> <!-- 定义访问的url-->
</servlet-mapping>
用的是spring的DispatcherServlet,如果用其他方式,配置不一定相同。
然后在WEB-INF下新建xfire-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 引入XFire预配置信息 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- 定义访问的url-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/ticketService">
<ref bean="ticketService" />
</entry>
</map>
</property>
</bean>
<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>
<!--这是接口实现类,标注了@WebService注解 -->
<bean id="ticketWS" class="com.demo.web.TicketWebServeImpl">
</bean>
<!--这是接口-->
<bean id="ticketService" parent="baseWebService">
<property name="serviceBean" ref="ticketWS" />
<property name="serviceClass" value="com.demo.web.TicketWebServe" />
<property name="name" value="ticketService"/> <!--指定webservice接口名称-->
<property name="namespace" value="http://webservice.nfss.demo.com/"/> <!--指定命名空间-->
</bean>
</beans>
接着开发用@WebService注解标注了的webservice接口实现类和interface,发布成功后,WSDL的访问地址为:http://ip:port/应用上下文/xfirews/ticketService?wsdl
如果要指定接口调用时的参数名称,而不是默认的in0,in1等,可在接口的interface类所在目录下新建xml文件进行配置,文件名为<接口的interface类同名.aegis.xml>,在xml文件中定义接口每个方法的调用参数名称,如下示例:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
4000
<method name="insertTickets">
<parameter index="0" mappedName="ticketsInfo" />
</method>
<method name="insertInvoiceIntoTicket">
<parameter index="0" mappedName="invoiceInfo" /> <!--这是第一个参数,如果不配置,默认参数名为in0-->
<parameter index="1" mappedName="ticketType" /> <!--这是第一个参数,如果不配置,默认参数名为in1-->
</method>
</mapping>
</mappings>
用的jar包下载链接为:http://download.csdn.net/download/u010295735/9938762
相关文章推荐
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Eclipse使用Axis2,spring开发jax-ws(webservice)的配置讲解
- spring中集成xfire开发webservice
- xfire+spring2.5开发webservice接口的两种方式
- Spring集成XFire开发WebService问题
- xfire+spring2.5开发webservice接口的两种方式
- Spring集成XFire开发WebService
- spring配置xfire生成webservice接口 和 调用webservice接口
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- Webservice的cxf开发_使用spring配置客户端
- Spring集成XFire开发WebService
- Spring集成XFire开发WebService
- 教你一步步用Spring集成XFire开发WebService
- XFire与Spring集成时WebService客户端的两种开发方式