最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python調(diào)用java的Webservice示例

 更新時間:2014年03月10日 17:10:59   作者:  
這篇文章主要介紹了python調(diào)用java的Webservice具體方法,包含java端和python實現(xiàn)代碼,需要的朋友可以參考下

一、java端
首先我使用的是java自帶的對webservice的支持包來編寫的服務(wù)端和發(fā)布程序,代碼如下。
webservice的接口代碼:

復(fù)制代碼 代碼如下:
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);
}


接口實現(xiàn)代碼:
復(fù)制代碼 代碼如下:
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;
    }
}


發(fā)布Webservice代碼:[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代碼了。
上面的代碼跑起來后,你可以直接使用瀏覽器訪問:

復(fù)制代碼 代碼如下:
http://localhost:8080/test/calc?wsdl

來驗證是否啟動成功。
二、python端
接下來是python的測試代碼:
復(fù)制代碼 代碼如下:
#!/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文件,再修改一下可執(zhí)行權(quán)限:

復(fù)制代碼 代碼如下:
chmod +x webservice.py

輸出結(jié)果如下:

復(fù)制代碼 代碼如下:
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>

三、常見問題

注意,在執(zhí)行上面的代碼時,有可能提示:

復(fù)制代碼 代碼如下:
Traceback (most recent call last):
  File "ws.py", line 1, in <module>
    import suds
ImportError: No module named suds

說缺少依賴的包,我們可以手工下載安裝suds包。
復(fù)制代碼 代碼如下:
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。

相關(guān)文章

最新評論

邵武市| 台北市| 峨山| 依安县| 崇明县| 昆山市| 武宣县| 巫溪县| 庆安县| 南涧| 额济纳旗| 通化县| 清流县| 平顶山市| 田东县| 彰化市| 东乡县| 永善县| 利川市| 富蕴县| 青岛市| 嫩江县| 新郑市| 博客| 烟台市| 额尔古纳市| 共和县| 东辽县| 安平县| 贵定县| 开原市| 宁城县| 萨嘎县| 报价| 贵定县| 漠河县| 横峰县| 荔波县| 卓尼县| 铜梁县| 承德市|