2011-10-12 121 views
6

我有SOAP服務器正在運行。我需要爲服務器編寫一個SOAP客戶端。你可以請在Eclipse中建議插件或給我與此相關的網址?如何創建soap客戶端?

可以請你給我提供它,你有什麼樣SOAP客戶端代碼?

我的SOAP客戶端應使用複雜的對象作爲其在SOAP服務器公開的SOAP功能parmeter /參數。

+0

你應該對你想要做的更具體一點。哪種語言 ?你試過什麼了 ? – fyr

+0

嗨thanx爲您的快速回復我想在java中創建它的解決方案之一可能是導入org.apache.axis.client我不知道它是否適合,但某種這可能會幫助我創建它 –

回答

3

你的問題很模糊,所以使用Apache CXF,並按照本教程:

  1. 這是最近(2011年)新手必看:Creating a SOAP client with either Apache CXF or GlassFish Metro
  2. How to create a WSDL-first SOAP client in Java with CXF and Maven
  3. This demo illustrates Apache CXF's support for SOAP headers

其他明智的,你也可以使用Apache AXIS2。

+0

關於[Apache CXF常見問題解答](http://cxf.apache.org/faq.html#FAQ-CanCXFrunwithJDK1.7%3F)它表示關於Java 7支持的「TBD」。 – Eyal

0

那幾乎有點寬泛的問題。從我的角度來看,我會建議使用Apache CXF:http://cxf.apache.org/

有很好的示例,您可以定義一個WSDL並生成服務器以及客戶端代碼。還有一些maven插件會自動爲你做這個JOB。嵌入由WSDL描述的現有Web服務也是可能的。

不過,無論這更是要求和口味的問題。

替代可以例如發現在這裏:http://java-source.net/open-source/web-services-tools

1

更新你的日食到最新的版本(我已經看到它與Eclipse歐羅巴3.3.2也工作:))。轉到新項目嚮導,並在網絡服務選擇網絡服務客戶端,點擊下一步,然後給你的網絡服務的wsdl文件位置。 Eclipse將自動爲您生成Web服務存根。

3

假設的Java:

1.-執行:

wsimport -keep -p myClient url_to_wsdl 

凡myClient將與生成的客戶端的僞影的文件夾。 url_to_wsdl URL到你的WSDL。

2.-創建具有用下面的代碼的方法的客戶端類:

YourServiceClass service = new YourServiceClass(); 
    YourEndpointClass port = service.getPort(); 
    YourRequestClass request = new YourRequestClass(); 
    YourMessageClass message = new YourMessageClass(); //In case you have it 
    message.setParam1(param1); //depending on your message 
    message.setParam2(param2); 

    request.setMessage(message); 
    YourResponseClass response = port.ServiceOperation(request); //This call locks execution 

    System.out.println(response.getMessage().getResponse()); 
  • YourServiceClass是生成的構件的延伸javax.xml.ws.Service。

  • YourEndpointClass可以在YourServiceClass中的超級調用操作中看到。的getPort();

  • YourRequestClassYourResponseClass將取決於如何管理的請求和響應消息。

  • YourMessageClass將是您的消息的包裝類(取決於WSDL)。必須已經由wsimport生成並導入到您的客戶端類

所有你*類。 隨着國旗-keepwsimport您將能夠看到.java文件,並確定您需要哪些類來完成此代碼。