我有一個XML文件,需要使用PHP進行解析並將解析的數據發送給Java,那麼有什麼最佳實踐可以實現?將數據從PHP傳輸到Java
回答
如果數據量很大,而且您需要快速傳輸,那麼您想考慮protobuf(http://code.google.com/p/protobuf/)。這與SOAP相當,但完全以二進制方式通信。
我想這可能有助於更多地瞭解你想要做什麼的前提以及你的侷限性。
你只編寫PHP端並將數據發送到已經創建的Java應用程序嗎?或者你在做雙方?你可以使用哪種協議來與Java接口?
// - >後澄清//
我沒有ILOG引擎的很多知識,但是我看了一下API來種得到的,我將開始一個想法。
顯然我不知道如何爲你設置一切,但似乎ILOG有一個用於處理已經內置到其中的XML的API?
http://ilog.cn/products/jrules/documentation/jrules67/api/html/index.html
個人而言,我會進行必要的修改,以XML文件,並把它關到Java程序採取使用該API的照顧。
對不起,如果我走錯了方向!
您還可以使用PHP SimpleXML(PHP V5)從XML文件中讀取數據
有一個PHP/Java橋實現:http://php-java-bridge.sourceforge.net/pjb/我以前的公司用它曾在一個項目,據我所知它的工作,但我沒有參與該項目,所以我不能告訴你任何問題。
如果這不是一個選項,通過SOAP或更「輕量級」交換格式的Web服務將是我猜的最佳選擇。
爲什麼你必須使用PHP解析這個文件?將這個代碼移植到Java中是不可能的? PHP代碼返回什麼?如何輕鬆地被Java讀取(或者這是整個問題的一部分?)
正如我所看到的,您有以下選擇:重寫Java中的邏輯,一個Web服務(SOAP,REST有什麼) ,PHP/Java bridge或PHP scripting engine in Java。
你說得對,Java如何輕鬆準備就是整體問題。我必須使用PHP解析XML,而不需要將數據解析爲Java。 – Rachel 2009-10-23 15:06:14
爲什麼你必須/解析PHP中的數據? 數據看起來像從PHP進程出來還是尚未確定呢?如果不是,除了「解析」數據之外,PHP過程還在做什麼?在這種情況下解析是什麼意思? – 2009-10-23 15:55:23
這是一個解析XML文件的簡單例子,我們可以在解析數據需要進入mysql數據庫並使決策表需要轉到JRules引擎後使用perl或php。如前所述,PHP過程中出現的數據應該是數據和決策表,php需要將數據存儲到mysql數據庫並將決策規則傳遞給JRules引擎。解析=什麼解析意味着在「解析XML文件」 – Rachel 2009-10-23 20:13:09
「解析」是什麼意思?究竟是PHP代碼在做什麼?
您可以使用諸如SOAP或XMLRPC或Thrift或Protobuf之類的語言來讓兩種語言彼此交談,但只需讓PHP代碼加載XML並簡單地將其逐字節發送給Java程序通過HTTP或其他。 Java代碼然後可以執行解析工作,這可能就像將XML數據傳遞到正在使用的庫一樣簡單。
PHP代碼正在對XML文件進行解析。通過解析我的意思是XML解析,而不是我必須將這個解析的數據傳遞給Java。 – Rachel 2009-10-28 12:44:03
我建議這個alternative-
一)解析XML並將其轉換成JSON(Java腳本對象符號)在PHP。 (操作JSON對象非常簡單,就像處理PHP中的地圖/數組一樣)
b)對JSON數據進行任何操作。
c)調用Java服務器端組件(Servlet/Struts動作等,假設您的Java爲Web組件)並將JSON數據發佈到組件。
d)剛剛讀取請求參數(JSON數據)並使用JSON庫(sourceforge具有用於java的良好JSON庫)將數據解析爲Map/List(取決於您擁有的數據類型)。
JSON XML它有什麼不同? PHP和Java都很好地處理xml,爲什麼還要爲協議轉換而煩惱? – 2009-10-28 09:41:18
我覺得JSON是結構化數據的一種較輕的表示形式,對我們通常使用的數據結構更接近和直觀。我還認爲XML需要比JSON更有效地進行解析。 – Keshav 2009-10-28 10:31:39
所以你想:
解析xml。
提取一些數據並將其插入到MySql中。
分析傳入數據並構建一些JRules參數。
然後調用Jrules。
對不對?
據我所知,JRules沒有命令行API - 如果它確實可以使用系統(...)調用來啓動應用程序。
我最好的建議是在Java中做所有事情!
JRules在Websphere中運行,所以您有一個確實運行的Servlet引擎。 Java附帶了解析XML,更新數據庫和調用JRules所需的所有API。爲什麼要從PHP調用Java類的痛苦?
另類!我注意到JRules有一個Web服務接口。 Web上的某處是一個php SOAP :: Client接口(它是可選的,但應該在大多數PHP 5發行版中默認提供),因此您可以在JRules上配置WebService,獲取xml架構並將其加載到php引擎中。然後使用phps SOAP :: Client類來調用Web Service相對簡單。請參閱http://th2.php.net/manual/en/book.soap.php
儘管如此,仍然更喜歡純Java選項。
是的。你是對的。 – Rachel 2009-10-28 12:45:26
適用以下場景:
創建一個PHP REST服務,例如頁面,當標準web請求請求時(例如,嘗試在brwoser中打開頁面),它將返回xml文件。然後,Java應用程序將連接到php rest服務(例如頁面)並獲取xml輸出。
Java應用程序啓動一個TCP服務器,PHP應用程序使用TCP協議連接到該服務器,並將XML文件發送給Java應用程序。
PHP應用程序將xml文件保存在數據庫表的一列中,Java應用程序從那裏讀取它。
- 1. 從JavaScript到PHP的數據傳輸
- 2. 從PHP傳輸到Java時數據不完整
- 3. 使用php-java-bridge傳輸文件從php上傳到java
- 4. 將數據從SQL Server傳輸到MySQL
- 5. 將數據從jsp傳輸到servlet
- 6. 將數據從MySQL傳輸到javascript
- 7. 將數據從SQS傳輸到Dynamodb
- 8. 將數據從Action Class傳輸到Jsp
- 9. 將數據從MySQL傳輸到Mongo
- 10. 將數據從PC傳輸到Android Mobile
- 11. 將數據從Excel傳輸到dataGridView
- 12. 將數據從Mysql傳輸到excel
- 13. 將數據從Redshift傳輸到Elastic Search?
- 14. 將數據從Express傳輸到Angular
- 15. 將數據從PostgreSQL傳輸到MySQL
- 16. 將數據傳輸到從兩個表
- 17. 將數據從Flex傳遞到Java
- 18. 將數據從Java Servlet傳遞到JSP?
- 19. 將數據從xcode傳遞到php
- 20. 將數據從PHP傳遞到JavaScript
- 21. 將數據從C#傳遞到PHP
- 22. 將數據從表單傳遞到php
- 23. 將Foreach數據從PHP傳遞到Ajax
- 24. 將數據從Ajax傳遞到PHP
- 25. 將數據從InputStream傳輸到Java中的OutputStream
- 26. 將數據從android傳輸到java桌面應用程序
- 27. 有效地將大量字節數據從C++傳輸到Java
- 28. 如何將數據從JSON文件傳輸到PHP?
- 29. 將數據從php文件傳輸到Android應用程序
- 30. 如何將數據從JavaScript傳輸到PHP?
是否有非常有限的選項來做到這一點? – Rachel 2009-10-20 21:20:48
我必須使用PHP解析包含決策規則的傳入XML,並且使用Java中的JRules API將此決策規則傳遞給ILOG JRules引擎,希望能夠澄清問題。 – Rachel 2009-10-22 19:32:43
您的Java應用程序是否位於XML所在的同一臺機器上?你能直接從Java應用程序讀取XML嗎? – Adrian 2009-10-23 13:46:56