SOC基本实现研究
2011-11-28 22:31
253 查看
[b]1. Java:AXIS2 + Tomcat[/b]
** 安装后的目录如下所示
** 配置好相关的环境(包括Tomcat,AXIS2, 以及AXIS2中的Lib路径)
** 发布服务,调用服务
*** 发布
>>> javac Calculator.java
然后将生成的 .class 文件放到pojo文件夹(如果没有可以手动创建)中, 此时已经默认发布为 web service。
启动Tomcat,在浏览器中输入:http://localhost:8080/axis2/
如果成功则web服务已经成功发布。
*** 调用
[b]2. Python:SOAPpy模块[/b]
** 访问刚才用AXIS2发布的web服务(体现与编程环境的独立性,以及Web Service的松散耦合性)
** 访问远程的Web Service
** 安装后的目录如下所示
** 配置好相关的环境(包括Tomcat,AXIS2, 以及AXIS2中的Lib路径)
** 发布服务,调用服务
*** 发布
//Server: Calculator.java
public class Calculator { public double add(double x, double y) { return x + y; } public double sub(double x, double y) { return x - y; } public double mul(double x, double y) { return x * y; } public double div(double x, double y) { return x / y; } }
>>> javac Calculator.java
然后将生成的 .class 文件放到pojo文件夹(如果没有可以手动创建)中, 此时已经默认发布为 web service。
启动Tomcat,在浏览器中输入:http://localhost:8080/axis2/
如果成功则web服务已经成功发布。
*** 调用
// Client: Calculator.java
//此处用到的一些包是axis2中的 import javax.xml.namespace.QName; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; public class client { public static void main(String[] args) throws Exception { // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://localhost:8080/axis2/services/Calculator"); options.setTo(targetEPR); // add方法的参数值 Object[] add_args = new Object[] {1.0, 2.0 }; // 指定add方法返回值的数据类型 Class[] add_return = new Class[] { double.class }; // 指定要调用的add方法及WSDL文件的命名空间 QName add_method = new QName("http://ws.apache.org/axis2", "add"); // 调用add方法并输出该方法的返回值 System.out.println("1 + 2 = "+serviceClient.invokeBlocking(add_method, add_args, add_return)[0]); } }
[b]2. Python:SOAPpy模块[/b]
** 访问刚才用AXIS2发布的web服务(体现与编程环境的独立性,以及Web Service的松散耦合性)
import SOAPpy #local client that calls local web service url = "http://localhost:8080/axis2/services/Calculator?wsdl" namespace = "http://ws.apache.org/axis2"
server = SOAPpy.SOAPProxy(url, namespace) ##if you want to Show SOAP exchange message, uncomment the following lines #proxy = SOAPpy.WSDL.Proxy(url) #proxy.soapproxy.config.dumpHeadersIn = 1 #proxy.soapproxy.config.dumpHeadersOut = 1 #proxy.soapproxy.config.dumpSOAPIn = 1 #proxy.soapproxy.config.dumpSOAPOut = 1 #proxy.soapproxy.config.debug = 9 print server.add(1,2)
** 访问远程的Web Service
import SOAPpy #web service: wsdl url #content: country's and region's infomation url = 'http://www.mobilefish.com/services/web_service/countries.php?wsdl' server = SOAPpy.WSDL.Proxy(url) # get all available methods for method in server.methods: print method # get all countries' info: IANA(缩写形式), country_name for res in server.getIANAInfo(): print res # get a country's info through IANA print server.countryInfoByIana('cn') # get a country's all regions' info: latitude, longitude, ianacode, region_name for res in server.regionsInfoByIana('cn'): print res
相关文章推荐
- 关于基本排序算法的简单研究总结(java 实现)
- 面向对象高级(继承的基本实现、进一步研究、final关键字)
- MVP项目研究——BaseActivity实现基本数据的绑定与释放
- 算法研究之快速排序的基本实现(Java)
- JXCELL实例学习与研究(六) 之 sheet的分页功能的实现,以及基本EXCEL公式的使用 以及补充函数说明
- 二叉树的基本操作 (二叉链表实现)
- 快速排序基本思想以及代码实现
- Java 五子棋源程序 实现了基本的功能
- C# 实现对XML的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- .net MVC 实现基本的登陆
- 线性表的顺序表示和实现基本操作之插入元素
- Stack类模板的动态数组实现(基本功能)
- 利用sqlmap实现基本的SQL注入
- c++实现字符串的基本功能(派生类与继承)
- 用自定义的队列实现一些基本功能
- 各种基本算法实现小结(二)—— 堆 栈
- (手写识别) Zinnia库及其实现方法研究
- 在线编辑器的基本实现原理
- OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
- JavaScript 实现的滚动条,熟悉一下JS的基本语法一些细节建议查看手册: