spring集成axis2-1.5.6实现webservice服务器端及客户端
来源:互联网 发布:网络安全法培训课件 编辑:程序博客网 时间:2024/06/05 14:09
1、下载axis2-1.5.6,相关的文件我已经上传,可以到我的资源里去下载
2、新建一个WebProject
以下是myeclipse WebProject的文件目录
3、添加jar包,简单起见将axis2-1.5.6-bin中lib下的jar全部导入,同时导入spring.jar
4、编写接口类IFileManagerDao
package com.alpha.dao;public interface IFileManagerDao {public abstract String add();public abstract String del();public abstract String upload();public abstract String down();}
5、编写实现类FileManagerDao
package com.alpha.dao.impl;import com.alpha.dao.IFileManagerDao;public class FileManagerDao implements IFileManagerDao {public String add(){System.out.println("add success..");return "add";}public String del(){System.out.println("del success..");return "del";}public String upload(){System.out.println("upload success..");return "upload";}public String down(){System.out.println("down success..");return "down";}}
6、编写webservice FileWebService
package com.alpha.service;import com.alpha.dao.IFileManagerDao;public class FileWebService {IFileManagerDao fileManagerDao;public String add(){return fileManagerDao.add();}public String del(){return fileManagerDao.del();}public String upload(){return fileManagerDao.upload();}public String down(){return fileManagerDao.down();}public IFileManagerDao getFileManagerDao() {return fileManagerDao;}public void setFileManagerDao(IFileManagerDao fileManagerDao) {this.fileManagerDao = fileManagerDao;}}
基础的类都写好了,接下来编写配置文件(不存在的文件自己创建)
7、web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 指定spring配置信息 --><context-param> <param-name>contextConfigLocation</param-name><param-value>classpath:conf/applicationContext.xml</param-value></context-param> <!-- 添加spring监听器 --> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 注册axis2的servlet --> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class> org.apache.axis2.transport.http.AxisServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
8、spring配置文件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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 添加spring ApplicationContextHolder Bean 在Spring 中注入Bean 代理器 --> <bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" /><!-- 添加Spring Bean 对象 --><bean id="fileManagerDao" class="com.alpha.dao.impl.FileManagerDao"></bean><bean id="fileWebService" class="com.alpha.service.FileWebService"><property name="fileManagerDao" ref="fileManagerDao"></property></bean></beans>
9、services.xml(在WebRoot/services/axis/META-INF/下,需自己创建,axis可任意命名)
<?xml version="1.0" encoding="UTF-8"?><serviceGroup> <service name="fileWebService"> <description>spring集成axis2案例</description> <!-- 通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象 --> <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier </parameter> <!-- SpringBeanName固定的不能改 fileWebService是spring中bean的id --> <parameter name="SpringBeanName"> fileWebService </parameter> <!-- <messageReceivers>:用于设置处理WebService方法的处理器 in-out有返回值 in-only没有返回值 --> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> </service></serviceGroup>
至此服务器端就已经编写完成。接下来只需启动tomcat就可以发布webservice,可以通过下面的路径查看wsdl
http://localhost:8080/WebServiceTest/services/fileWebService?wsdl
http://ip:port/工程名/services/webservice名?wsdl(webservice名是在services.xml中定义的)
10、客户端调用webservice
import javax.xml.namespace.QName;import org.apache.axis2.AxisFault;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.rpc.client.RPCServiceClient;public class WebServiceClient {public static void main(String[] args) throws AxisFault {// 建立一个远程连接客户端RPCServiceClient serviceClient = new RPCServiceClient();// 设置参数Options options = serviceClient.getOptions();// 远程webservice服务地址 ,http://ip:port/工程名/services/webservice名EndpointReference targetEPR = new EndpointReference("http://localhost:8080/WebServiceTest/services/fileWebService");options.setTo(targetEPR);// 方法的参数 (如果没有参数opArgs不能为NULL,Object[] opArgs = new Object[] {// }就可以,然后把opArgs传入invokeBlocking)Object[] opArgs = new Object[] { "filename" };// 返回参数类型Class[] classes = new Class[] { String.class };serviceClient.setTargetEPR(targetEPR);// 此处的是 实现类所在的包的倒序QName opName = new QName("http://service.alpha.com", "add");// 可使用在services.xml中targetNamespace中指定的命名// QName opName = new QName("http://service.crystal.com", "down");String ret = serviceClient.invokeBlocking(opName, opArgs, classes)[0].toString();System.out.println(ret);opArgs = new Object[] { 1 };classes = new Class[] { String.class };opName = new QName("http://service.crystal.com", "del");ret = serviceClient.invokeBlocking(opName, opArgs, classes)[0].toString();System.out.println(ret);serviceClient.cleanupTransport();System.out.println(ret);}}
- spring集成axis2-1.5.6实现webservice服务器端及客户端
- axis2 webservice 服务器端和客户端实现例子。
- mvn 结构下spring+axis2开发webservice服务器端、客户端
- CXF+WS-Security+Spring WebService服务器端+客户端及注意问题
- axis2+spring集成发布webservice服务
- Spring Webservice服务端及客户端实现
- WebService之Axis2系列教程Axis2与Spring集成发布
- Axis2开发WebService服务端及客户端
- axis2生成webservice客户端代码及使用方法
- axis2 客户端调用服务器端
- axis2 客户端调用服务器端
- AXIS2的WEBSERVICE集成
- webService 客户端调用 axis2
- WebService客户端Axis2调用
- Axis2开发WebService客户端
- axis2 转 webservice 客户端
- webservice 笔记(小结) axis2 集成spring 发布服务
- webservice 笔记(小结) axis2 集成spring 调用服务
- tinyxml使用笔记与总结
- BIEE Oracle Error code: 1722, message: ORA-01722
- 默认存储句子与分配策略不相容
- Android应用自动更新功能的实现!!!
- tomcat二级域名的配置
- spring集成axis2-1.5.6实现webservice服务器端及客户端
- jQuery基本原理
- [ASP.NET]如何在一个网站中定时执行一个任务
- TableView中的编辑删除功能
- 关于国内类Skillshare网站的思考
- Mac OSX 调用 Dylib
- VI/VIM/GVIM颜色自定义
- 判断文件权限的方法
- 软件架构设计方法学:敏捷思维