2011-05-17 86 views
2

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

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)

如果有任何其他方式(或更好的方法),请让我知道我该怎么做。 预先感谢您。

回答

1

有对夫妇更可行的替代办法:

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

+0

谢谢。我使用了Thrift。一路上有一些小的速度颠簸,但最终让我感觉很舒服:D我对结果很满意,我认为这是值得的。特别是你提供的教程帮助了我。再次感谢。 – 2011-05-18 23:15:30

+0

非常欢迎你,我也跟着同一个教程来学习Thrift。除了彻底的文档外,我认为Thrift是非常强大的IDL。 – anubhava 2011-05-19 00:01:54

+0

优秀的,非常漂亮的博客教程在节俭我必须说。 – anubhava 2011-08-05 18:01:51

0

揭露的Java应用程序如使用JAX-RS的服务。您可以使用泽西岛http://jersey.java.net/快速启动并运行。一旦你这样做,你可以很容易地一样的东西发出袅袅命令:

假设你有一个从球衣必要的罐子,你已经配置了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); 
+0

谢谢。在[我的其他问题](http://stackoverflow.com/questions/5929669/call-a-wsdl-web-service-created-by-java-from-nushphere-phped)我张贴如何我的应用程序作为服务。它是否适用于此?如果是这样,你能告诉我如何在所描述的服务中调用'sayHello'函数吗? – 2011-05-17 23:12:41

+0

我编辑了我的答案给你一个Java片的例子。 – 2011-05-17 23:32:30

+0

谢谢,但既然我是PHP和Java的新手,我不太明白它是如何工作的。那么我怎么能通过论证呢?我在哪里得到结果使用它?而且,我应该更改Java代码以返回{message:},...东西吗?怎么样字符串数组返回类型或自定义类型? – 2011-05-18 10:31:45