【问题标题】:Using PHP SoapClient with Java JAX-WS RI (Webservice)将 PHP SoapClient 与 Java JAX-WS RI(Web 服务)一起使用
【发布时间】:2011-02-24 20:47:24
【问题描述】:

对于一个新项目,我们想使用 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: Parsing WSDL: Couldn't load from 'http://localhost:8080/calculator?wsdl ' ...“ 例外。

我已经使用其他 Web 服务测试了 PHP SoapClient(),它们可以正常工作。 JAX-WS RI 与 PHP 结合是否存在已知问题,或者我的 Web 服务中是否存在我没​​有看到的错误?

我找到了this bug report,但即使更新到 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)

【问题讨论】:

    标签: java php soap web-services jax-ws


    【解决方案1】:

    如果超时,看起来 php 无法正确解析 WSDL URL。您是否尝试过 WSDL Url 上的 file_get_contents()/curl?也许尝试调用 IP 而不是 localhost,看看效果如何。

    【讨论】:

    • 这真是太疯狂了。带有“localhost”或“127.0.0.1”的 file_get_contents() 超时。两者都成功的卷曲。并且带有“localhost”的 SoapClient() 超时,但带有“127.0.0.1”的成功。我不明白问题可能出在哪里(可能是我的 XAMPP Apache 配置或主机文件中的某些内容),但现在我知道如何让它工作了。非常感谢!!!
    猜你喜欢
    • 2023-04-03
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多