从PHP访问Java应用程序

时间:2011-05-17 23:00:46

标签: java php web-services

我有一个java应用程序。它有3个重要的功能,提供重要的数据。我想为这个应用程序创建一个Web界面。我想从PHP访问这些函数(调用它们)并检索返回的数据。实现这一目标的最佳方法是什么?我之前创建了一个WSDL Web服务,但是我遇到了一些问题:

https://stackoverflow.com/questions/5929669/call-a-wsdl-web-service-created-by-java-from-nushphere-phped

在这里:

PHP: SoapClient constructor is very slow (takes 3 minutes)

如果有其他方式(或更好的方式),请告诉我如何才能做到。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

还有几种更可行的选择:

这是一个很好的tutorial on integrating Java with PHP using Thrift

答案 1 :(得分:0)

答案 2 :(得分:0)

使用JAX-RS将Java应用程序公开为服务。您可以使用Jersey http://jersey.java.net/来相对快速地启动和运行。完成后,您可以轻松地发出curl命令,例如:

假设你有来自球衣的必要的罐子并且你已经配置了web.xml(按照球衣入门教程),你可以在java方面这样做:

@Path("/helloservice")
public class HelloServiceResource {
    @GET
    @Path("/sayhello")
    @Produces("application/json")
    public String sayHello() {
        return "{\"message\":\"Hello\"}";
    }
}

现在在PHP中你可以:

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://myserver.com/myapp/helloservice/sayhello");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);