2011-08-16 26 views
2

我需要使用我正在編寫的Java程序來使用SOAP Web服務。我在.asmx文件中的服務器上有一個基本的.NET服務測試。我在Google上發現了一些複雜的例子,但有人可以爲我提供一個簡短的解釋嗎?這將不勝感激。謝謝!如何使用Java來使用SOAP Web服務?

這是我的.asmx文件。

<%@ WebService Language="C#" Class="Example1" %> 

using System.Web.Services; 

[WebService(Namespace="urn:Example1")] 
public class Example1 { 

    [ WebMethod ] 
    public string sayHello(string name) { 
     return "Hello " + name; 
    } 

} 

也許有一種不同的方式我應該這樣做?再次感謝。

+0

這與[tag:java]有什麼關係? – corsiKa

+0

取決於您選擇的Web服務堆棧。對於JAX-WS,請查看JDK中的「wsimport」。 –

+1

您可能會發現[this] [1]答案最有用。 [1]:http://stackoverflow.com/q/291847/850326 – djhaskin987

回答

4

您可以使用一個名爲wsimport的JDK附帶的工具來解析您的WSDL文件並生成Java類。

wsimport http://path/to/your?wsdl -d /desired/output/folder 

然後,您可以使用生成的類,像這樣:

Example1Endpoint example1 = new Example1Service().getExample1Port(); 
System.out.println(example1.sayHello("tkcsam")); 
+0

我將不得不建立自己的wsdl文件呢?我正在看的那個是自動生成的。我可以通過在我的服務網址末尾添加?wsdl來查看它。 – tier1

+0

我打算接受此答案。它使我朝着正確的方向感謝你!這是一個教程,我也跟着,幫助我得到我需要的東西。 http://honga.super6.cz/2011/07/consuming-wcf-services-with-java-client.html – tier1

+0

您不需要生成自己的WSDL文件。 'wsimport'可以與.Net網絡服務(通過在URL的末尾添加?wsdl來查看)一起使用。 –

0

是您的.Net服務「頁」您發表的字符串作爲PARM?我不得不和其他一些人聊天(我不會稱他們爲「網絡服務」,但無論如何......)。

如果是這樣的話,找出你需要發佈的內容。使用您的Java構建需要提供給頁面的巨大String,然後將其作爲parm發送到頁面,並等待響應字符串返回。那麼你必須解析那個字符串。

這非常不雅,但它曾經是微軟如何做的事情。不知道你的情況是否屬實。否則,如果你確實有一個WSDL可以使用,那麼我可能會使用Jack的答案或者按照djhaskin987的註釋,因爲那裏列出了一些框架,它們將根據已發佈的Web服務動態生成Web服務客戶端(已發佈其WSDL跟他們)。

0

JAXWS是與java中的SOAP web服務進行交互的標準技術。 oracle jdk中的默認實現是metro棧,它有一個extensive user guide