Jsf 2 JSFUnit获取JSFServerSession时不一致

Jsf 2 JSFUnit获取JSFServerSession时不一致,jsf-2,jboss-arquillian,weblogic12c,jsfunit,Jsf 2,Jboss Arquillian,Weblogic12c,Jsfunit,我们试图在WebLogic12c容器上使用Arquillian运行JSFUnit,但遇到了一些问题 首先,当我们尝试使用@InitialPage注释注入JSFServerSession和JSFClientSession时,JSFServerSession总是以null返回 第二,我们尝试通过创建一个新的JSFSession,然后从中获取JSFServerSession和JSFClientSession来解决这个问题。一旦我们运行第二个测试,我们就会得到“java.lang.IllegalStat

我们试图在WebLogic12c容器上使用Arquillian运行JSFUnit,但遇到了一些问题

首先,当我们尝试使用@InitialPage注释注入JSFServerSession和JSFClientSession时,JSFServerSession总是以null返回

第二,我们尝试通过创建一个新的JSFSession,然后从中获取JSFServerSession和JSFClientSession来解决这个问题。一旦我们运行第二个测试,我们就会得到“java.lang.IllegalStateException:找不到HttpSession。确保JSFUnitFilter已经运行,并且您的测试扩展了org.apache.cactus.ServletTestCase。”

这看起来很武断,因为有时我们会运行测试并通过。有时候,就在下一次失败的时候。或者添加一行看起来不应该相关的代码,将抛出“找不到HttpSession”错误


它似乎无法处理多次创建JSFSession的问题,或者服务器上有一些超时,即使测试war正在取消部署,也需要超时。有什么想法吗?

我不确定这是否也适用于您的问题,但我对JBoss7也有类似的问题。通常,这些问题可以通过以下方式解决:

  • 使用
    Servlet 3.0
    协议,该协议应包括
    web.xml
  • 如果这没有帮助(如我的情况),请使用以下解决方案:
  • 无论如何,尽量避免自己创建会话