springmvc webservice的2种用法,xstream以及axis2 集成spring发布服务

现在2种需求用到了webservice

一种是微信的模板消息要推送,使用spring-quartz推送消息

一种是为客户端写接口,客户端通过连接webservice传参数获取返回值

使用了2种方法发布webservice服务,感觉axis2 集成spring的比较好用


先说第一种xstream创建webservice

在webroot下建立个文件件 结构如下



services.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://xfire.codehaus.org/config/1.0">  
    <service>  
        <!-- webserviceq名称,调用时需要指定这个 -->  
        <name>templatemesservice</name>  
        <!-- 接口类          -->
        <serviceClass>service.TemplateMesService</serviceClass> 
        <!-- 实现类 -->  
        <implementationClass>serviceimpl.TemplateMesServiceimpl</implementationClass>  
		
    </service>
还需要配置web.xml,注册XFireServlet
web,xml

<servlet>  
        <servlet-name>XFireServlet</servlet-name>  
        <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
    </servlet>  
  
    <servlet-mapping>  
        <servlet-name>XFireServlet</servlet-name>  
        <url-pattern>/services/*</url-pattern>  
    </servlet-mapping> 


需要注意的是建立webservice 的service必须要有接口和实现类

不然会提示失败

访问地址http://localhost:8080/htllo/services/templatemesservice?wsdl








第二种axis2 集成spring


结构一样




service.xml

<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
	<!-- webservice名字 -->
	<service name="helloService">
		<description>helloService</description>
		<parameter name="ServiceObjectSupplier"><!-- 固定的不变 -->
			org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
		</parameter>
		<parameter name="SpringBeanName">helloService</parameter><!-- bean名字 -->
		<messageReceivers>
			<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
				class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
		</messageReceivers>
		<parameter name="ServiceClass"> <!-- bean的地址 -->
			com.ysh.service.helloService
		</parameter>
	</service>
</serviceGroup>

web.xml

<servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <display-name>Apache-Axis AxisAdmin Servlet (Web Admin)</display-name>
    <servlet-name>AxisAdminServlet</servlet-name>
    <servlet-class>
            org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/servlet/AxisServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>*.jws</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>AxisAdminServlet</servlet-name>
    <url-pattern>/axis2-admin/*</url-pattern>
  </servlet-mapping>

pom.xml

<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2</artifactId>
			<version>1.5.4</version>
		</dependency>
<dependency>
			<groupId>org.jdom</groupId>
			<artifactId>jdom</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2-spring</artifactId>
			<version>1.6.2</version>
		</dependency>
		
		
		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2-transport-http</artifactId>
			<version>1.5.4</version>
		</dependency>
		
		
		
		
		
		

		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2-transport-local</artifactId>
			<version>1.5.4</version>
		</dependency>

		<dependency>
			<groupId>org.apache.xmlbeans</groupId>
			<artifactId>xmlbeans</artifactId>
			<version>2.4.0</version>
		</dependency>

不需要建接口,直接把service注入,service.xml取的也是bean名字.

自己留存


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值