源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python调用java的Webservice示例

  • 时间:2020-07-25 05:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python调用java的Webservice示例
[b]一、java端[/b] 首先我使用的是java自带的对webservice的支持包来编写的服务端和发布程序,代码如下。 [b]webservice的接口代码: [/b]
[u]复制代码[/u] 代码如下:
package com.xxx.test.ws; import javax.jws.WebMethod; import javax.jws.WebService; /**  * Created with IntelliJ IDEA.  * User: Administrator  * Date: 14-3-5  * Time: 下午3:11  */ @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); }
[b]接口实现代码: [/b]
[u]复制代码[/u] 代码如下:
package com.xxx.test.ws; import javax.jws.WebService; /**  * Created with IntelliJ IDEA.  * User: Administrator  * Date: 14-3-5  * Time: 下午3:12  */ @WebService(         portName = "CalculatorPort",         serviceName = "CalculatorService",         targetNamespace = "http://xxx.com/wsdl",         endpointInterface = "com.xxx.test.ws.CalculatorWs") public class Calculator implements CalculatorWs {     public int sum(int add1, int add2) {         return add1 + add2;     }     public int multiply(int mul1, int mul2) {         return mul1 * mul2;     } }
[b]发布Webservice代码:[[/b]code] package com.xxx.test.endpoint; import com.xxx.test.ws.Calculator; import javax.xml.ws.Endpoint; /**  * Created with IntelliJ IDEA.  * User: Administrator  * Date: 14-3-10  * Time: 下午3:10  */ public class CalclulatorPublisher {     public static void main(String[] args) {         Endpoint.publish("http://localhost:8080/test/calc", new Calculator());         //Endpoint.publish("http://10.3.18.44:8080/test/calc", new Calculator());     } }[/code] 运行上面的这段代码,让你的webservice跑起来,接下来就可以使用Python来测试你的webservice代码了。 上面的代码跑起来后,你可以直接使用浏览器访问:
[u]复制代码[/u] 代码如下:
http://localhost:8080/test/calc?wsdl
来验证是否启动成功。 [b]二、python端[/b] 接下来是python的测试代码:
[u]复制代码[/u] 代码如下:
#!/usr/bin/python import suds url = 'http://localhost:8080/test/calc?wsdl' #url = 'http://10.3.18.44:8080/test/calc?wsdl' client = suds.client.Client(url) service = client.service print client sum_result = service.sum(10, 34) print sum_result print client.last_received() multiply_result = service.multiply(5, 5) print multiply_result print client.last_received()
将上述代码保存成webservice.py文件,再修改一下可执行权限:
[u]复制代码[/u] 代码如下:
chmod +x webservice.py
[b]输出结果如下: [/b]
[u]复制代码[/u] 代码如下:
Suds ( https://fedorahosted.org/suds/ )  version: 0.3.9 (beta)  build: R658-20100210 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 <?xml version="1.0" encoding="UTF-8"?> <S:Envelope>    <S:Body>       <ns2:sumResponse>          <return>44</return>       </ns2:sumResponse>    </S:Body> </S:Envelope> 25 <?xml version="1.0" encoding="UTF-8"?> <S:Envelope>    <S:Body>       <ns2:multiplyResponse>          <return>25</return>       </ns2:multiplyResponse>    </S:Body> </S:Envelope>
[b]三、常见问题[/b] 注意,在执行上面的代码时,有可能提示:
[u]复制代码[/u] 代码如下:
Traceback (most recent call last):   File "ws.py", line 1, in <module>     import suds ImportError: No module named suds
说缺少依赖的包,我们可以手工下载安装suds包。
[u]复制代码[/u] 代码如下:
wget http://downloads.sourceforge.net/project/python-suds/suds/0.3.9/suds-0.3.9.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpython-suds%2Ffiles%2F&ts=1394436413&use_mirror=nchc tar zxvf suds-0.3.9.tar.gz cd suds-0.3.9 sudo python setup.py install
OK。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部