欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、java端
首先我使用的是java自帶的對(duì)webservice的支持包來(lái)編寫的服務(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);
}


接口實(shí)現(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]
運(yùn)行上面的這段代碼,讓你的webservice跑起來(lái),接下來(lái)就可以使用Python來(lái)測(cè)試你的webservice代碼了。
上面的代碼跑起來(lái)后,你可以直接使用瀏覽器訪問(wèn):

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

來(lái)驗(yàn)證是否啟動(dòng)成功。
二、python端
接下來(lái)是python的測(cè)試代碼:
復(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>

三、常見問(wèn)題

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

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

說(shuō)缺少依賴的包,我們可以手工下載安裝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)文章

  • python機(jī)器學(xué)習(xí)案例教程——K最近鄰算法的實(shí)現(xiàn)

    python機(jī)器學(xué)習(xí)案例教程——K最近鄰算法的實(shí)現(xiàn)

    本篇文章主要介紹了python機(jī)器學(xué)習(xí)案例教程——K最近鄰算法的實(shí)現(xiàn),詳細(xì)的介紹了K最近鄰算法的概念和示例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-12-12
  • Python利用tkinter和socket實(shí)現(xiàn)端口掃描

    Python利用tkinter和socket實(shí)現(xiàn)端口掃描

    這篇文章主要為大家詳細(xì)介紹了Python如何利用tkinter和socket實(shí)現(xiàn)端口掃描功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-12-12
  • python通過(guò)socket查詢whois的方法

    python通過(guò)socket查詢whois的方法

    這篇文章主要介紹了python通過(guò)socket查詢whois的方法,涉及Python基于socket模塊進(jìn)行查詢的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 深入理解python虛擬機(jī)GIL詳解

    深入理解python虛擬機(jī)GIL詳解

    在目前的 CPython 當(dāng)中一直有一個(gè)臭名昭著的問(wèn)題就是 GIL (Global Interpreter Lock ),就是全局解釋器鎖,他限制了 Python 在多核架構(gòu)當(dāng)中的性能,在本篇文章當(dāng)中我們將詳細(xì)分析一下 GIL 的利弊和 GIL 的 C 的源代碼
    2023-10-10
  • windows10系統(tǒng)中安裝python3.x+scrapy教程

    windows10系統(tǒng)中安裝python3.x+scrapy教程

    本文給大家主要介紹了在windows10系統(tǒng)中安裝python3以及scrapy框架的教程以及有可能會(huì)遇到的問(wèn)題的解決辦法,希望大家能夠喜歡
    2016-11-11
  • Python解壓 rar、zip、tar文件的方法

    Python解壓 rar、zip、tar文件的方法

    這篇文章主要介紹了Python解壓 rar、zip、tar文件的方法,文中通過(guò)實(shí)例代碼給大家介紹了python 解壓文件壓縮文件的方法,需要的朋友參考下吧
    2019-11-11
  • Python目錄和文件處理總結(jié)詳解

    Python目錄和文件處理總結(jié)詳解

    這篇文章主要介紹了Python目錄和文件處理總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python Requests訪問(wèn)網(wǎng)絡(luò)更方便

    Python Requests訪問(wèn)網(wǎng)絡(luò)更方便

    這篇文章主要介紹了使用Python Requests訪問(wèn)網(wǎng)絡(luò),Python Requests 是一個(gè)非常強(qiáng)大的 HTTP 客戶端庫(kù),用于發(fā)送 HTTP 請(qǐng)求,獲取響應(yīng)等操作,通過(guò)這個(gè)庫(kù),你可以輕松地與 Web 服務(wù)進(jìn)行交互,實(shí)現(xiàn)各種網(wǎng)絡(luò)請(qǐng)求
    2024-01-01
  • python golang中g(shù)rpc 使用示例代碼詳解

    python golang中g(shù)rpc 使用示例代碼詳解

    這篇文章主要介紹了python golang中g(shù)rpc 使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python獲取CPU、內(nèi)存使用率以及網(wǎng)絡(luò)使用狀態(tài)代碼

    Python獲取CPU、內(nèi)存使用率以及網(wǎng)絡(luò)使用狀態(tài)代碼

    這篇文章主要介紹了Python獲取CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)使用狀態(tài)的相關(guān)代碼,對(duì)此有需要的朋友一起測(cè)試下。
    2018-02-02

最新評(píng)論