python调用java编写的Webservice
2015-01-23 15:57
537 查看
首先我使用的是java自带的对webservice的支持包来编写的服务端和发布程序,代码如下。
webservice的接口代码:
实现代码:
发布代码:
上面的代码跑起来后,你可以直接使用浏览器访问 http://localhost:8080/test/calc?wsdl 点击打开链接 来验证是否启动成功。
接下来是python的测试代码:
输出结果如下:
注意,执行上面代码的时候,有可能报错:
出现这个错误是缺少suds库,可以用easy_install安装suds库:
easy_install如何使用可以百度一下,这里就不详细讲解了
webservice的接口代码:
package jk.kaifa.ws; import javax.jws.WebMethod; import javax.jws.WebService; @WebService(targetNamespace = "http://xxx.com/wsdl") public interface CalculatorWs { @WebMethod public int sum(int add1, int add2); @WebMethod public int multiply(int mul1, int mul2); }
实现代码:
package jk.kaifa.ws; import javax.jws.WebService; @WebService( portName = "CalculatorPort", serviceName = "CalculatorService", targetNamespace = "http://xxx.com/wsdl", endpointInterface = "jk.kaifa.ws.CalculatorWs") public class Calculator implements CalculatorWs{ @Override public int sum(int add1, int add2) { // TODO Auto-generated method stub return add1 + add2; } @Override public int multiply(int mul1, int mul2) { // TODO Auto-generated method stub return mul1 * mul2; } }
发布代码:
package jk.kaifa.endpoint; import javax.xml.ws.Endpoint; import jk.kaifa.ws.Calculator; public class CalculatorPublisher { public static void main(String[] args){ Endpoint.publish("http://localhost:8080/test/calc", new Calculator()); } }运行上面的这段代码,让你的webservice跑起来,接下来就可以使用Python来测试你的webservice代码了。
上面的代码跑起来后,你可以直接使用浏览器访问 http://localhost:8080/test/calc?wsdl 点击打开链接 来验证是否启动成功。
接下来是python的测试代码:
import suds url = 'http://localhost:8080/test/calc?wsdl' client = suds.client.Client(url) service = client.service print client sum_result = service.sum(10,34) multiply_result = service.multiply(2,3) print sum_result print multiply_result print client.last_received()
输出结果如下:
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913 Service ( CalculatorService ) tns="http://xxx.com/wsdl" Prefixes (1) ns0 = "http://xxx.com/wsdl" Ports (1): (CalculatorPort) Methods (2): multiply(xs:int arg0, xs:int arg1, ) sum(xs:int arg0, xs:int arg1, ) Types (4): multiply multiplyResponse sum sumResponse 44 6 <?xml version="1.0" encoding="UTF-8"?> <S:Envelope> <S:Body> <ns2:multiplyResponse> <return>6</return> </ns2:multiplyResponse> </S:Body> </S:Envelope>
注意,执行上面代码的时候,有可能报错:
Traceback (most recent call last): File "ws.py", line 1, in <module> import suds ImportError: No module named suds
出现这个错误是缺少suds库,可以用easy_install安装suds库:
easy_install如何使用可以百度一下,这里就不详细讲解了
相关文章推荐
- python调用java编写的Webservice
- python调用java编写的Webservice
- java(axis)调用java编写的webservice
- java编写webService与使用jquery调用
- java(xfire)调用java编写的webservice
- java调用webservice(用wsdl2java简化客户端的编写)
- JAVA 调用 .NET编写的WebService
- PB调用java编写的webservice需要注意的几点
- delphi7编写客户端调用java服务器端webservice示例
- java调用.net编写的webservice
- java 编写webservice 接口(xfire) ,调用webservice接口
- python调用java的Webservice示例
- java调用python的webservice
- java 编写和调用webservice文章
- python调用java的Webservice示例
- delphi调用java编写的webservice
- .net 调用 Java编写的WebService
- delphi调用java编写的webservice
- .net调用java编写的webservice
- python3调用java的webService小程序