簡體   English   中英

結合使用PHP SoapClient和Java JAX-WS RI(Web服務)

[英]Using PHP SoapClient with Java JAX-WS RI (Webservice)

對於一個新項目,我們希望使用JAX-WS RI在Java中構建Web服務,對於Web服務客戶端,我們希望使用PHP。

在有關JAX-WS RI的小型教程中,我找到了此示例Web服務:

package webservice;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public class Calculator {
    public long addValues(int val1, int val2) {
        return val1 + val2;
    }
}

對於網絡服務器:

package webservice;

import javax.xml.ws.Endpoint;
import webservice.Calculator;

public class CalculatorServer {
    public static void main(String args[]) {
        Calculator server = new Calculator();
        Endpoint endpoint = Endpoint.publish("http://localhost:8080/calculator", server);
    }
}

啟動服務器並使用URL“ http:// localhost:8080 / calculator?wsdl ”瀏覽WDSL可以正常工作。 但是從PHP調用Web服務失敗。

我非常簡單的PHP調用如下所示:

$client = new SoapClient('http://localhost:8080/calculator?wsdl', array('trace' => 1));
echo 'Sum: '.$client->addValues(4, 5);

但是然后我得到“致命錯誤:超出60秒的最大執行時間...”或“未捕獲的SoapFault異常:[WSDL] SOAP-ERROR:解析WSDL:無法從' http:// localhost:加載: 8080 / calculator?wsdl '...“異常。

我已經將PHP SoapClient()與其他Web服務一起進行了測試,它們可以正常工作。 JAX-WS RI與PHP結合使用時是否存在已知問題,或者我沒有看到的Web服務中是否存在錯誤?

我已經找到了此錯誤報告 ,但是即使更新到PHP 5.3.2也無法解決問題。

誰能告訴我該怎么辦? 順便說一下,我在Windows 7 x64上運行的Java版本如下:

java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

如果超時,則表明php無法正確解析WSDL URL。 您是否在WSDL網址上嘗試過file_get_contents()/ curl? 也許嘗試調用IP而不是localhost,看看情況如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM