繁体   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