我正在使用java ee 6并试图找出是否有可能从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);
对话始终为null,因为先前的代码无效。
有任何线索以正确的方式做到这一点吗?
请注意,尽管在标签中使用了jboss7,但我不介意是否发布了与另一台服务器相关的解决方案。野蝇。
非常感谢。
最佳答案
如果要以Java EE方式进行操作,则应将Conversation作用域会话Bean注入到Servlet中。