0

我正在尝试在 PHP 和 Java 之间进行通信。

这就是我想做的。PHP 将参数 ID 传递给 Java 文件。

Java 获取 ID 并运行一些脚本并向 PHP 返回一个 ARRAY。

我已经阅读了很多,例如 PHP/Java Bridge、SOAP、RestCall ...

但我找不到一个有效的。基本上是我不知道怎么配置。

我想找一些我能理解的简单例子。而且我不需要使用 PHP/Java Bridge。

更容易的事情会做。

更新。

*我曾尝试对 Java 文件进行 Curl 调用,在 $result = curl_exec($curl) 上返回 Java 中的整个 CODE。*

我什至尝试了 Java Servlet,它也只返回 Java 中的整个 CODE。

我想要的是 PHP 向 Java 发出 GET 请求,Java 将检测 GET 请求并获取参数 ID。运行一些进程并将 ARRAY 返回给 PHP。

我希望它只在 HTTP 请求中完成。

但我无法弄清楚它是如何工作的。我什至尝试了 HTTPComponent。

请帮我看看 PHP 和 Java 文件中的简单示例。

我什至遵循这个 servlet http://brajeshwar.com/2008/handling-http-get-requests-in-java-servlets/ CGI http://www.javaworld.com/jw-01-1997/jw-01- cgiscripts.html?page=3 ,而不仅仅是这些。很多例子。但没有一个工作。

我错过了什么吗?我将提供更多细节。我使用了 XAMPP,每个项目和文件都在我的 htdocs 中。

所有请求都将是这样的“http://localhost/test/....”

谢谢你。


对不起,我没有说得足够清楚。

JAVA文件就是普通的JAVA文件如

public class HelloWorld {
String hw = "Hello World";

public void getHelloWorld() {

            System.out.println("abc");
}

    public static void main(String [] args){
    System.out.println("abc");
    }

}

谢谢你。


更新 2

这是我的下一个问题。

就像那些 Curl、Rest、Cgi 调用一样。它实际上调用了 .Java 文件,对吗?结果返回是.Java 的整个源代码。

这是因为没有编译器来编译 Java 类,对吧?我将 Java 文件放在 xampp/htdocs 中,我使用 Netbeans 编译它。

所以当我从 PHP 调用时,没有人编译它?如我错了请纠正我?

所以我应该把 .Java 文件放在像 Tomcat 这样的服务器中,对吗?或者编译方法?我尝试放入tomcat webapps,并通过localhost:8080/test/test.java 连接到它

它返回错误 404。

如何使用 Web 浏览器访问 .Java 文件?请帮我。

谢谢你。

解决了

使用 RESTFul 工作 Java。我可以得到对 Java 的 Curl 调用。

遵循本指南

对于像我这样的 Java 初学者来说非常清楚。


4

3 回答 3

0

I hope this will give you some better ideas to use cURL() for RESTFul webservices .

 $curl = curl_init();     
 $url = "http:";
 $fields = 8;
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 //To use https
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($fields));
 curl_setopt($curl, CURLOPT_COOKIEJAR, "cookie.txt");
 curl_setopt($curl, CURLOPT_COOKIEFILE, "cookie.txt");
 $curl_response = curl_exec($curl);

u can manipulate the $curl_reponse in php.

于 2013-04-24T08:41:14.570 回答
0

我建议您阅读 Spring MVC 并创建一个完整的 REST Web 服务。调用一个可执行的 java 类可能会起作用,但我相信这不是常见的做法。

这是一个可能调用的控制器类的示例。

@Controller
public class TestController extends BaseController {

    @RequestMapping(value = "/rest/helloworld", method = RequestMethod.GET)
    public @ResponseBody
    String helloWorld(HttpServletRequest req)
            throws Exception {
        return "hello world";
    }
}

这是非常高级的 java,特别是如果你想在 Spring 中配置它。我无法在这篇小文章中详细解释所有这些。然而,这个网站可能会启发你更多http://viralpatel.net/blogs/tutorial-spring-3-mvc-introduction-spring-mvc-framework/

于 2013-04-24T19:32:03.797 回答
0

试试 Rest 的例子

<?php
$url = 'JAVA_PAGE_URL';
// Open a curl session for making the call 
$curl = curl_init($url);
// Tell curl to use HTTP POST 
curl_setopt($curl, CURLOPT_POST, true);
// Tell curl not to return headers, but do return the response 
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Set the POST arguments to pass to the Sugar server 
$parameters = array('id'=>$id);
$json = json_encode($parameters);

$postArgs = 'method=login&input_type=JSON&response_type=JSON&rest_data=' . $json;
curl_setopt($curl, CURLOPT_POSTFIELDS, $postArgs);
// Make the REST call, returning the result 
$response = curl_exec($curl);

// Close the connection 
curl_close($curl);
// Convert the result from JSON format to a PHP array 
$result = json_decode($response);
?>
于 2013-04-24T08:34:06.987 回答