【问题标题】:Java: wait to receive a value from another server (by http?)Java:等待从另一台服务器接收值(通过http?)
【发布时间】:2011-06-26 13:47:39
【问题描述】:

我正在使用 struts2&spring3 开发一个 Web 应用程序,我需要做的最后一件事是在我的服务器和另一台服务器之间进行通信,我必须在其中发送 XML 文件并等待它的响应。

正如某人所说,我已经使用库 HttpClient4(来自 Apache)实现了通过 HTTP 发送 XML 文件:

        File file = new File(fileName);
        FileEntity entity = new FileEntity(file, "text/xml; charset=\"UTF-8\"");
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost method = new HttpPost(server);
        method.setEntity(entity);
        HttpResponse response = httpclient.execute(method);

但现在我必须实现等待和获取其他服务器将发送给我的响应。问题是另一台服务器仍未开发,那么,您认为哪种方式最能得到答案?通过 HTTP 也将是完美的,但我不知道哪个库以及如何做到这一点。

非常感谢您的所有帮助,

阿莱克斯

【问题讨论】:

    标签: java http struts2 client-server httpclient


    【解决方案1】:

    在这里我找到了两个选项

    1. 立即发送响应。

    2. 开发一个模块[客户端],在收到请求并添加到队列后接受来自服务器的响应[异步模式]

    【讨论】:

    • 问题是我发送 XML 文件的服务器必须解析该文件并进行一些计算,然后会向我发送一个字符串响应。所以他不能立即给我回复(你说的第一个选项)。拜托,你能更好地解释一下,或者提供一些关于第二个选项的链接吗?非常感谢;)
    • @Aleix,第二个选项也是一个简单的解决方案,您需要开发一个 servlet 或类似的来处理您的服务器的响应。示例:支持myserver.com/app/receiveResponse.jsp 将成为页面以接收来自您的服务器2 的所有响应。这样,即使经过很长时间,您也可以收到响应。
    • 对不起,但我不明白你的意思......这肯定是我的错,因为我对所有这些都有些陌生。我在想的是在发送 XML 文件(如while(not_received){ask_for_the_response;})之后,在同一操作中的一些 Java 代码中,这样我就可以从该操作返回响应值,抱歉,如果它是如此抽象的描述......任何主意?或者你能试着用另一种方式向我解释你的想法吗?有什么例子吗?真的非常非常感谢你;)
    • 您可能知道异步处理。在队列中处理请求也会导致异步响应,即延迟响应。为此编写一个接收 xml 并将其部署在 server1 [向 server2 发送请求] 的 JSP 或 Servlet,如果您在 server2 正确处理请求,则 server1 将自动接收来自 server2 的响应
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 2014-07-27
    • 2018-08-22
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多