我们的网页设置了PHP,使用HTTPS安全。 Web应用程序与数据库进行通信,但我们也希望它与我们拥有的Java服务器进行通信。
java服务器是一个独立的Java应用程序(不是web)。在PHP页面完成写入java服务器中完成的数据库之后,我们只需要一个回调操作。这个php页面与java程序交谈以完成某项工作的好方法是什么?
答案 0 :(得分:4)
我通常建议快速和肮脏,但在这里: 如果数据可以是异步的,您可以将数据转储到文件中。然后来自java的cron作业,定期检查那种文件,执行指定的命令。
例如,您可以将单词ExecuteCmd1转储到文件中。 java线程读取它,解释它并选择他必须执行具有相同名称的方法或类。
你可以做同样的事情回到php。
答案 1 :(得分:2)
可能通过TCP / IP连接。如果您的Java应用程序运行服务器,则PHP脚本可以连接并发送消息,通知Java应用程序已写入DB。
答案 2 :(得分:1)
从PHP到Java快速而脏的JSON RPC。你可以用一杯咖啡来运行它。
在php(http://php.net/curl)和json_encode()上使用CURL将json字符串POST到Java服务器。 (向下滚动并找到有人在评论中写的卷曲包装类。这很简单。)
在Java中使用JSON(http://www.json.org/java/)对其进行解码并立即使用它。用JSON发回你的回复。
我有一个类似的XML RPC系统在生产中运行多年。 PHP - > IP - > Java效果很好。
答案 3 :(得分:0)
Google Protocol Buffers不管你使用哪种语言,都不是那么脏,而是有效,而且运作良好。
答案 4 :(得分:0)
您可以尝试PHP/Java bridge。我刚才用它在Typo3里面使用Java逻辑,这是一个PHP CMS。
我的建议,无论你是否使用过这座桥:如果出现问题,请确保你知道错误的来源。检查PHP和Java日志。如果发生异常,请详细说明。
答案 5 :(得分:0)
您需要传输多少数据?
每秒请求多少个?
Java应用程序是否必须立即处理请求,或者是否足以在几分钟内处理请求?
Java应用程序是否需要将数据返回给用户的浏览器?
如果问题3和4的答案是否定,您可以为作业创建数据库表,让PHP应用程序插入新作业,并让Java应用程序每分钟左右轮询一次作业表。