将数据从PHP传输到Java

时间:2009-10-20 19:18:02

标签: java php

我有一个XML文件,我需要使用PHP解析并将解析后的数据发送给Java,有哪些最佳实践可以实现它?

10 个答案:

答案 0 :(得分:4)

这是针对SOAP等网络服务的案例研究。

答案 1 :(得分:2)

如果数据量很大并且您需要快速传输,那么您可以考虑使用protobuf(http://code.google.com/p/protobuf/)。它与SOAP相当,但完全以二进制形式进行通信。

答案 2 :(得分:2)

我想这可能有助于更多地了解您尝试做的事情以及您的局限性。

您是否只编写PHP端并将数据发送到已创建的Java应用程序?或者你在做双方?您可以使用哪种协议与Java进行交互?

// - >澄清后//

我对ILOG引擎知之甚少,但是我看了一下API,想知道我将从哪里开始。

显然我不知道如何为您设置一切,但似乎ILOG有一个用于处理已经内置的XML的API?

http://ilog.cn/products/jrules/documentation/jrules67/api/html/index.html

就个人而言,我会对XML文件进行必要的修改,然后将其交给Java程序来处理使用该API。

对不起,如果我走错了方向!

答案 3 :(得分:2)

所以你想:

解析xml。

提取一些数据并将其插入MySql。

分析传入的数据并构造一些JRules参数。

然后调用Jrules。

右?

据我所知,JRules没有命令行API - 如果确实如此,你可以使用系统(...)调用来启动应用程序。

我最好的建议是用Java做任何事情!

JRules正在Websphere中运行,所以你肯定会运行一个Servlet引擎。 Java提供了解析XML,更新数据库和调用JRules所需的所有API。为什么要从php调用Java类呢?

Alternativly!我注意到JRules有一个Web服务接口。 Web上的某个地方是一个php SOAP :: Client接口(它是可选的,但应该在大多数php 5发行版中默认提供),因此您可以在JRules上配置WebService,获取xml架构并将其加载到php引擎中。然后它相对容易使用phps SOAP :: Client类来调用Web服务。见http://th2.php.net/manual/en/book.soap.php

但仍然更喜欢纯Java选项。

答案 4 :(得分:1)

“解析”是什么意思?究竟是什么,PHP代码在做什么?

您可以使用SOAP或XMLRPC或Thrift或Protobuf之类的东西来让两种语言相互通信,但让PHP代码加载XML并简单地将其逐字节发送到Java程序通过HTTP或其他东西。然后,Java代码可以执行解析工作,这可能就像将XML数据交给您正在使用的库一样简单。

答案 5 :(得分:0)

您还可以使用PHP SimpleXML(PHP v5)从XML文件中读取数据

答案 6 :(得分:0)

有一个PHP / Java桥实现:http://php-java-bridge.sourceforge.net/pjb/我以前的公司在一个项目中使用它一次,据我所知它有效,但我没有参与该项目所以我不能告诉你到底任何问题。

如果这不是一个选项,那么通过SOAP或者更轻量级的交换格式的Web服务将是您最好的选择。

答案 7 :(得分:0)

为什么必须使用PHP解析此文件?将此代码移植到Java是不可能的? PHP代码返回什么? Java可以轻松读取(或者这是整个问题的一部分吗?)

正如我所看到的,你有以下几种选择:用Java重写逻辑,一个Web服务(SOAP,具有你的REST),PHP/Java bridgePHP scripting engine in Java

答案 8 :(得分:0)

我会建议这个替代方案 -

a)解析XML并将其转换为PHP中的JSON(Java脚本对象表示法)。 (操纵JSON对象非常简单,就像在PHP中处理地图/数组一样) b)对JSON数据进行任何操作。
c)调用Java服务器端组件(Servlet / Struts操作等,假设您的Java为Web组件)并将JSON数据发布到组件。
d)只需读取请求参数(JSON数据)并使用JSON库(sourceforge有一个很好的Java JSON库)将数据解析为Map / List(取决于您拥有的数据类型)。

答案 9 :(得分:0)

以下情况适用:

  1. 创建一个php rest服务,例如当标准Web请求请求时将返回xml文件的页面(例如,尝试在brwoser中打开页面)。然后,Java应用程序将连接到php rest服务(例如页面)并获取xml输出。

  2. Java应用程序使用TCP协议启动PHP应用程序连接到的TCP服务器,并将XML文件发送到Java应用程序。

  3. PHP应用程序将xml文件保存在数据库表的一列中,Java应用程序从那里读取它。