我们在公司遇到了一个问题,我正在努力寻找最佳解决方案。
最近购买的软件利用Java程序来获取特定货件的税。需要它的网站是用PHP4编写的。我如何在两者之间进行交流?
有人建议使用文件进行通信,但由于每次都需要重新编译Java程序,因此速度非常慢。那么,最佳解决方案是什么:
提前致谢!
修改 我理解Web服务的重要性,但为什么使用基于多线程的多线程Java服务器会更有效呢?连接到这个Web服务的唯一事情就是我的PHP程序,没有其他人。对我的简单任务来说,这似乎有点过分。我错了吗?如果是这样,为什么?感谢。
答案 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)
答案 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。它成熟,快速且易于安装。