elicpse+maven的webservice应用
来源:互联网 发布:网络剧有毒同人小说 编辑:程序博客网 时间:2024/06/04 17:49
使用webservice 在一个服务中调用另外一个服务。
1、准备工作
使用elicpse的maven插件分别建立:
axis2-test
axis2-testServer
其中axis2-test中pom的依赖如下:
<dependencies><dependency><groupId>org.apache.axis2</groupId><artifactId>axis2-kernel</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.apache.axis2</groupId><artifactId>axis2-codegen</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.apache.axis2</groupId><artifactId>axis2-adb</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.apache.axis2</groupId><artifactId>axis2-transport-local</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.apache.axis2</groupId><artifactId>axis2-transport-http</artifactId><version>1.6.1</version></dependency></dependencies>
2、在aix2-test中编写服务器类并使用eclipse插件部署服务器代码。
客户端类OprationClient 调用服务类OprationServiceImpl,服务类定义了一个接口OprationService。
服务类:
package com.hualom.axis.service;/** * @deprecated(操作接口) * @author Administrator * */public interface OprationService {/** * @deprecated(查询操作) * @param message * @return */public String search(String message);/** * @deprecated(非查询操作) * @param message * @return */public String noSearch(String message);}package com.hualom.axis.service.impl;import com.hualom.axis.service.OprationService;public class OprationServiceImpl implements OprationService {public String search(String message) {return message+" search finish!";}public String noSearch(String message) {return message+" noSearch finish!";}}
部署的时候需要导入新版的axis2 http://axis.apache.org/axis2/java/core/download.cgi 并解压。
在eclipse的菜单栏中选择 window-->preferences-->web service -->axis2 preferences 在axis2 runtime 下的 axis2 runtime location中指定解压目录
右击oprationServiceImpl--->webservice --->create webservice 如下:
在service implemention中出现需要部署的服务类 将服务器的运行状态设置为start service 并且设置 service runtime (web服务器) web service runtime (axis的版本)
对应的web项目。勾选publish the web service 和monitor the service ---> next --->next直到:
点击 start server 启动刚刚部署的web项目 --->next 直到 finish 此时部署就已经完成了。
3、在axis-test中编写客户端代码并调用服务器程序
package com.hualom.axis.client;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 OprationClient { /** * @param args * @throws AxisFault */ public static void main(String[] args) throws AxisFault { // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2-testServer/services/OprationServiceImpl"); options.setTo(targetEPR); // 指定要调用的计算机器中的方法及WSDL文件的命名空间:impl.service.axis.hualom.com 服务类的包名称。 QName searchResult = new QName("http://impl.service.axis.hualom.com","search"); QName noSearchResult = new QName("http://impl.service.axis.hualom.com","noSearch"); // 设置发送到服务器的内容 Object[] opAddEntryArgs = new Object[] { "你好 server"}; // 指定返回值的类型 Class[] classes = new Class[] { String.class }; // 调用服务器开放的接口并且返回结果 如果没有返回值可以直接调用 serviceClient.invokeRobust(opName, opAddEntryArgs) System.out.println(serviceClient.invokeBlocking(searchResult,opAddEntryArgs, classes)[0]); } }
总结:
服务器访问路径默认
http://localhost:8080/axis2-testServer/services/OprationServiceImpl
实际是http://localhost:8080/axis2-testServer/services+刚才部署的服务类名称OprationServiceImpl
调用服务器的方法需要指定 命名空间:"http://impl.service.axis.hualom.com" 这个空间一般就是服务类包名称倒过来写。
注意:
如果部署服务类的时候出现问题
1、将服务器中部署的项目删除
2、可以为eclipse换一个 工作空间。
- elicpse+maven的webservice应用
- elicpse+maven的webservice应用
- webservice的应用--java+maven项目
- webservice的应用--java+maven项目
- Elicpse创建不了maven项目
- Elicpse的使用总结
- elicpse几个版本的区别
- 我的Elicpse C++IDE问题解决设置
- elicpse端口被占用的解决办法
- elicpse 上已有的工程转换为Maven工程
- WebService的应用(一)
- WebService的应用(二)
- WebService的应用(三)
- webservice的简单应用
- php webservice的应用
- XFire的webservice应用
- SharePoint的WebService的应用
- SharePoint的WebService的应用
- freeswitch单独编译安装模块
- WebService总结
- C++函数与java函数对比--对象
- MyEclipse 10 更换JDK版本
- 简单分布式架构(附源码)
- elicpse+maven的webservice应用
- 杂记0908
- Kubernetes之Pod调度
- 对于闭包的理解
- c++智能指针和内置指针的转化
- [Leetcode] 402. Remove K Digits 解题报告
- 利用贝塞尔曲线实现动画
- Ubuntu搭建hadoop完全式集群
- jmeter解决中文乱码问题