Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Java互操作-Gearman还是PJB?_Java_Php_Interop_Gearman_Php Java Bridge - Fatal编程技术网

PHP Java互操作-Gearman还是PJB?

PHP Java互操作-Gearman还是PJB?,java,php,interop,gearman,php-java-bridge,Java,Php,Interop,Gearman,Php Java Bridge,从PHP调用Java的最佳选项是什么 或者完全是别的什么?我所说的“最佳”是指易于使用、可靠、透明(用于调试目的)——整个enchilada 换言之,这两种解决方案都有任何重大缺点吗 编辑:这是因为一个PHP站点需要使用第三方SOAP服务。WSDL中定义的类型层次结构对于任何纯PHP客户端来说都太复杂了 PHP/Java桥是功能性的,但我们发现它倾向于将僵尸JVM进程作为Apache子进程,而这些子进程必须是kill-9'd才能摆脱。我们最终每天运行一个cron作业来解决这个问题。我们只

从PHP调用Java的最佳选项是什么

或者完全是别的什么?我所说的“最佳”是指易于使用、可靠、透明(用于调试目的)——整个enchilada

换言之,这两种解决方案都有任何重大缺点吗


编辑:这是因为一个PHP站点需要使用第三方SOAP服务。WSDL中定义的类型层次结构对于任何纯PHP客户端来说都太复杂了

PHP/Java桥是功能性的,但我们发现它倾向于将僵尸JVM进程作为Apache子进程,而这些子进程必须是
kill-9
'd才能摆脱。我们最终每天运行一个cron作业来解决这个问题。我们只将它用于一个特定的类(一个到某人可怕的SOAP端点的接口类),当涉及到类型转换时,它有点挑剔,但它确实适用于我们。(僵尸进程问题可能是因为我们当时使用的是史前PHP版本,所以现在可能已经解决了。)


我对Gearman和Java没有任何经验,但对PHP有很多经验。在很大程度上,与你共事是一种乐趣。最恼人的问题是,处理来自调用方的异步更新需要一些非常详细的代码来处理所有可能的状态。不过,对于fire-and-forget-and-fire-and-get-instally-results-RPC来说,这真的很难打败。

Gearman可能不是你真正想要的解决方案(除非你真的想要一个工作队列而不是某种形式的RPC)。它可以以阻塞/同步的方式运行,但它会给团队带来大量开销(代码/应用程序/等等),因为我猜这是一项简单的任务

在不知道你想做什么的情况下,我想提出一些建议。XML-RPC(可能比SOAP的危害小一些!),或者像Facebook的Thrift[1]、ApacheAvro[2]或Google协议缓冲区[3]之类的东西

[1]

[2]


[3]

干杯-我们遇到了完全相同的问题,一个麻烦的SOAP服务。我认为没有一个是不麻烦的。供应商提供销售税服务,由于互操作问题,非常犹豫是否推荐Java客户端以外的任何产品。谢谢-我已经编辑了这个问题来描述我们为什么需要它,但我会研究这些建议啊哈,我看到了问题。。。我想您已经尝试过所有用于PHP的SOAP库,比如Zend_SOAP[和NuSoap[?您所做的调用是否会(或需要)被阻塞?(抱歉,有这么多问题)