2015-12-21 87 views
2

我必須從一個Java應用程序發送XML文件到另一個。將數據從一個Java應用程序發送到另一個

目前,它的工作原理是這樣的: - 從申請1 導出到本地XML文件 - 導入本地XML文件中的應用2

現在我已經通過網絡服務(S)來做到這一點。是否有可能在應用程序1中創建JAX-WS Web服務,並使用所需數據重定向到應用程序2?

我可以將數據(對象)作爲序列化對象而不是XML文件發送。但是這可能嗎?如果是這樣,怎麼樣?

這兩個應用程序都是用Eclipse-Scout編寫的。

在此先感謝。

回答

0

如果你的兩個應用運行在不同的機器上,webservice是簡單而有用的。

發送服務器: 使用HTTP的庫(POST或GET)

1只保留您的文件。只需使用HTTP/POST。適用於文本的二進制文件

2更簡單:如果數據是小文本,則可以使用HTTP/GET(注意特殊字符:可以對它們進行編碼)。

3如果您可以將所有數據放在一個結構(對象)中,只需對其進行序列化,然後將結果存入字符串併發送。

接收服務器:

如果你使用Tomcat,擴展了HttpServlet,並通過doPost方法獲得或的doGet

或者你也可以使用其他光HTTP服務器

或SOAP庫(沒有確實需要)。

的doPost /的doGet

發送服務器: HttpURLConnection的康恩=(HttpURLConnection類)url.openConnection(); //等

接收服務器:

public class MyServlet extends HttpServlet { 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
String one_parameter = request.getParameter("name_of_parameter"); 

看到這些鏈接,瞭解更多的解釋:

Java - sending HTTP parameters via POST method easily

doGet and doPost in Servlets

+0

感謝您的回答。但我對這類東西沒有一點經驗。你知道一個例子,他們從一個應用程序發送一個序列化的對象到另一個,並自動重定向到另一個應用程序? – Maarten

+0

我發現一篇文章,其中有人正是我想做的事。但他沒有解釋他是如何將對象發送給其他應用程序的:http://stackoverflow.com/questions/13584646/transferring-a-java-class-between-applications-via-serialization – Maarten

+0

我在我的一些鏈接回答。祝你好運 ! –

0

(A位長的評論)

你可能想留一個來自像JAX-WS這樣的臃腫事物的方式,只是使用標準的Servlet和JAXB或XStream進行反序列化。

此外,請勿在未經身份驗證的輸入/傳輸(例如HTTP或不可信的客戶端,即使使用HTTPS)上使用Java(二進制)反序列化或默認XStream。它總是會導致遠程代碼執行漏洞,如果不重新開發Web服務界面,就無法進行遷移。最近的instance ...

相關問題