PHP与Java程序通信

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

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

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

  1. 创建一个multithreadingJava服务器并使用PHP发送/接收信息。
  2. 一些其他类型的文件写入方法
  3. 一些我甚至不知道的酷。

提前致谢!

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

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

为什么不将信息转储到数据库中并且从一段时间内读取某种调度作业?

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

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

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

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

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

看看栎树

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

我从来没用过它,

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

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

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

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