2011-05-17 147 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