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