Java servlet之间的通信
我想写一个方法来处理XMPP上的通信流。我想做的事情的顺序是:Java servlet之间的通信,java,google-app-engine,Java,Google App Engine,我想写一个方法来处理XMPP上的通信流。我想做的事情的顺序是: 发送消息 等待回应 处理响应 因为我们可能需要等待30秒以上的响应(步骤2),所以我会安排一个任务来处理这个问题。此任务需要发送消息,然后等待处理传入消息的XMPPservlet上的响应。我的问题是:如何在任务servlet线程中等待响应到达XMPPservlet 我通常使用监听器模式,监听器将消息存储在任务对象的字段中,然后触发一个信号量来表示消息已经到达。像这样: 在静态字段中的XMPPservlet中安装侦听器 发送消息 等待
对不起,这个冗长的问题。如果不清楚,请告诉我,我会将其细化一点。重新发布我对您在邮件列表中提出的相同问题的答案: 您不能[在发送过程中等待响应]。相反,你 应该使用异步模式:发送消息并注册 传入XMPP消息的处理程序。该处理程序应该与 对相应请求的响应(如果需要,存储在数据存储中) (必要时)并对其进行适当处理 应用程序引擎应用程序可以在任意数量的机器上运行; 为线程间通信而设计的同步原语 这是行不通的
谢谢你的回复。当您说“处理程序应该匹配相应的请求(必要时存储在数据存储中)”时,除了数据存储之外还有其他方法吗?只是想了解人们是如何做到这一点的,以及最佳实践是什么…@MarkSilberbauer取决于你的信息是什么,以及你需要什么样的背景。您可以在请求中发送ID或其他信息,并在响应中要求返回。如果您需要带外上下文,数据存储就是其中之一。