1
我正在使用java ee 6并试图找出是否可以从servlet或过滤器开始对话。到目前为止,我有以下代码:是否可以从servlet或过滤器开始对话
的方法:
private static HttpConversationContext getHttpConversationContext() {
return Container.instance().deploymentManager().instance().select(HttpConversationContext.class).get();
}
,然后我有:
final HttpConversationContext httpConversationContext = getHttpConversationContext();
httpConversationContext.associate((HttpServletRequest) request);
httpConversationContext.getCurrentConversation().begin(conversationId);
但这似乎并没有工作。此外,当我尝试检查,如果他们的谈话开始用下面的代码:
Conversation conversation = httpConversationContext.getConversation(conversationId);
谈话总是空的,因为前面的代码没有工作。
任何线索如何以正确的方式做到这一点?
请注意,虽然标签中使用jboss7,但我不介意与其他服务器相关的解决方案是否已发布,即。 wildfly。
很多谢谢。
'HttpConversationContext',我猜'Container'和'Conversation',都是JBoss特有的类,它们不是任何发布版本的Servlet API的一部分。请重新提出您的问题(删除[java-ee- *]并添加适当的JBoss标签)。我会为你做,但我不知道你的JBoss细节。 –
感谢@JohnBollinger的评论,我正在使用jboss 7,请随时更改标签。但我也想知道是否有可能通过服务器不可知的代码实现这样的事情。相关技术仍然是Java 6/7,所以它可能会给读者一些线索。也许这样的事情可以用不同的方式实现。不一定是我这样做的方式。 – Ikthiander
为什么不只是将对话注入到过滤器或servlet中,希望你使用的是servlet 3+ api,因为它们支持注入 – maress