【问题标题】:Access java app from PHP从 PHP 访问 java 应用程序
【发布时间】:2011-05-17 23:00:45
【问题描述】:

我有一个 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)

如果还有其他方法(或更好的方法),请告诉我该怎么做。 提前谢谢你。

【问题讨论】:

    标签: java php web-services


    【解决方案1】:

    有几个更可行的选择:

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

    【讨论】:

    • 谢谢。我用过节俭。一路上有一些小的减速带,但它最终让我到达了一个不错的地方:D 我对结果很满意,我认为值得付出努力。特别是您提供的教程对我有帮助。再次感谢。
    • 不客气,我也按照相同的教程学习了 Thrift。除了详尽的文档之外,我认为 Thrift 是非常强大的 IDL。
    • 我必须说非常棒的关于 Thrift 的博客教程。
    • 我已将教程移至新主机。这是链接:thrift tutorial
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      使用 JAX-RS 将 java 应用程序公开为服务。您可以使用 Jersey http://jersey.java.net/ 相对快速地启动和运行。一旦你这样做了,你就可以轻松地发出 curl 命令,例如:

      假设您有来自 jersey 的必要 jar 并且您已经配置了 web.xml(按照 jersey 入门教程),您可以在 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);
      

      【讨论】:

      • 谢谢。在my other question 中,我发布了我如何将我的应用程序公开为服务。它适用于那个吗?如果是这样,您能告诉我如何在所描述的服务中调用sayHello 函数吗?
      • 谢谢,但由于我是 PHP 和 Java 的新手,我不太了解它是如何工作的。那么我怎样才能传递论点呢?我在哪里得到使用它的结果?而且,我应该更改我的 Java 代码以返回 {message: }, ... 东西吗?字符串数组返回类型还是自定义类型呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2013-10-26
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多