2009-07-31 35 views
1

我正在開發Java Web服務(JAX-WS)以將數據插入到MySQL DB中並檢索它。這個Web服務有兩個方法,即fetchFromDB和insertIntoDB。當我使用NetBeans IDE測試它們時,服務似乎運行良好。如何從AJAX調用Java Web服務(JAX-WS)?

Address: /CalculatorWSService 
WSDL: /CalculatorWSService?wsdl 

但是當我嘗試使用AJAX的XMLHttpRequest對象提供的網址http://localhost:8080/CalculatorApp/CalculatorWSService來訪問它。它無法訪問它。我開發了C#web服務,並且使用url訪問它們非常容易,但是java web服務似乎沒有遵循這一點。

我的問題是

用什麼URL來訪問在AJAX的Web服務操作? (我需要在url中使用'?wsdl'嗎? 有沒有一個javascript ajax庫來輕鬆訪問JAX-WS web服務? Apache Axis web服務是比JAX-WS更好的選擇嗎? 請幫助我,謝謝周杰倫

+0

AJAX的xmlHttpRequest是從Web服務部署在同一臺機器上發出的嗎? (你在你的WS網址中使用本地主機) – 2009-08-03 08:52:42

回答

1

我遇到了同樣的問題,無法從Javascript調用Jax-ws網絡服務,但我找到了一種方法來做到這一點。

URL中使用可以是你的相同(的EndpointAddress)http://localhost:8080/CalculatorApp/CalculatorWSService

但是當你創建你的JavaScript XMLHttpRequest對象:

*使用POST方法打開URL,我試着用GET,但它對我沒有用。
*設置SOAPAction請求標題爲您的wsdl中的一個,即使其爲空「」。
*請求身體發送非常小心,肥皂信封必須正確。

希望這可以幫助你!

再見。
Paul Manjarres。

1

從客戶端的角度來看,我沒想到Axis和JAX-WS,一切客戶的需求應該是在WSDL之間顯著的差異。

,有時會發生

的一件事是,所使用的URL時開發一個WebService引用開發主機和端口(甚至可能是ContextRoot)當部署到特定的服務器時,任何這些都可以改變。理想情況下,可以用新的「綁定」信息創建新的WSDL。

我的第一步是直接將瀏覽器指向您要調用的Web服務。在我的環境中,返回一個很好的「你好,這是一個Web服務」類型的消息。如果你找不到401錯誤,那麼你只需要研究如何部署Web服務。是否指定了不同的端口或上下文根?