PHP与Java程序通信

时间:2009-08-20 16:58:33

标签: java php

我们在公司遇到了一个问题,我正在努力寻找最佳解决方案。

最近购买的软件利用Java程序来获取特定货件的税。需要它的网站是用PHP4编写的。我如何在两者之间进行交流?

有人建议使用文件进行通信,但由于每次都需要重新编译Java程序,因此速度非常慢。那么,最佳解决方案是什么:

  1. 创建一个多线程Java服务器并使用PHP发送/接收信息。
  2. 其他一些文件写入方法
  3. 我甚至不知道的酷事。
  4. 提前致谢!

    修改 我理解Web服务的重要性,但为什么使用基于多线程的多线程Java服务器会更有效呢?连接到这个Web服务的唯一事情就是我的PHP程序,没有其他人。对我的简单任务来说,这似乎有点过分。我错了吗?如果是这样,为什么?感谢。

8 个答案:

答案 0 :(得分:7)

将Java程序包装在Web服务中,并从PHP调用它。您甚至可以在Web服务中使用缓存来优化性能。

答案 1 :(得分:1)

为什么不将信息转储到数据库中,并暂时从中读取某种调度作业?

您始终可以使用Quercus,它允许您在Tomcat Servlet容器中运行PHP。

答案 2 :(得分:1)

Web服务是一种优雅的解决方案。但在许多情况下,我发现了一个快速而肮脏的解决方案非常实用:启动一个使用轻量级通信协议进行通信的Java服务器(没有像Web Services中的XML这样的重量级东西) - 例如:Apache Thrift 。编写一个非常轻的客户端,从命令行获取参数并将输出写入控制台。客户端可以是Java,甚至是其他语言,如C ++(Apache Thrift支持)。然后使用system()exec()从PHP调用客户端。

这不是我推荐用于制作的解决方案,但它非常适合原型制作。快速,肮脏,灵活且极其适度的学习曲线(如果您已经在Java进程之间使用轻量级通信)。

答案 3 :(得分:0)

由于您使用的是PHP4,因此您可能只想设置一个位于封闭网络上的tomcat服务器,或者仅在感兴趣的计算机上设置本地服务器,并让它与servlet通信,这样您就没有了编写多线程服务器并处理创建通信接口。

如果您可以升级,此页面还有两个可能感兴趣的选项: http://us3.php.net/manual/en/intro.java.php

答案 4 :(得分:0)

查看Quercus

  

Quercus是Caucho Technology快速,开源,100%Java语言的Java实现

我从未使用它,

答案 5 :(得分:0)

Web服务就是答案。这是一个很好的intro link。您的问题是Web服务走到最前沿的原因 - 通常无法通信的系统之间的通信。

Web服务本质上要做的是在PHP和Java系统之间发送XML。您将不得不为这两者建立一个界面,这在新贵可能会更加困难,但您将在以后获得好处。在任何一种情况下,它都比在服务器上读取和写入文件快得多。磁盘I / O是任何服务器上的主要瓶颈。

答案 6 :(得分:0)

我可能会错过一些东西,但是如果你的java程序输出所需的值,你不能只使用exec(http://dk.php.net/manual/en/function.exec.php)从php启动java程序

答案 7 :(得分:0)

使用sourceforge.net中的PHP/Java Bridge。它成熟,快速且易于安装。