2

我必须将 XML 文件从一个 java 应用程序发送到另一个。

目前,它的工作方式如下: - 从应用程序 1 导出到本地 XML 文件 - 在应用程序 2 中导入本地 XML 文件

现在我必须通过网络服务来做到这一点。是否可以在应用程序 1 中创建一个 JAX-WS Web 服务,该服务使用所需的数据重定向到应用程序 2?

我可以将数据(对象)作为序列化对象而不是 XML 文件发送。但这可能吗?如果是这样,怎么办?

这两个应用程序都是用 Eclipse-Scout 编写的。

提前致谢。

4

2 回答 2

0

如果您的两个应用程序在不同的机器上运行,webservice 是简单而有用的。

发送服务器:使用 http 库(post 或 get)

1只保留你的文件。只需使用 HTTP / POST。适用于文本二进制

2更简单:如果您的数据是小文本,您可以使用HTTP / GET(注意特殊字符:您可以对它们进行编码)。

3 如果您可以将所有数据放在一个结构(对象)中,只需将其序列化,将结果放入字符串中,然后发送即可。

接收服务器:

如果你使用tomcat,扩展HttpServlet,并通过doPost或doGet获取

或者您可以使用另一个轻型 http 服务器

或肥皂库(真的不需要)。

DOPOST/DOGET

发送服务器:HttpURLConnection conn= (HttpURLConnection) url.openConnection(); // ETC。

接收服务器:

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 - 通过 POST 方法轻松发送 HTTP 参数

Servlet 中的 doGet 和 doPost

于 2015-12-21T13:19:50.940 回答
0

(评论有点长)

您可能希望远离像 JAX-WS 这样臃肿的东西,而只需使用标准的 Servlet 和 JAXB 或 XStream 进行反序列化/序列化。

此外,永远不要在未经身份验证的输入/传输上使用 Java(二进制)反序列化或默认 XStream(例如 HTTP 或即使使用 HTTPS 的不受信任的客户端)。它总是会导致远程代码执行漏洞,如果不重新开发您的 Web 服务接口就无法迁移。最近的事例...

于 2015-12-21T14:32:39.003 回答