Java JSF应用程序:websphere在ServletContextListener之前加载PhaseListener

Java JSF应用程序:websphere在ServletContextListener之前加载PhaseListener,java,servlets,jsf-2,Java,Servlets,Jsf 2,我发现在WAS8中,PhaseListener上的静态初始化器在ServletContextListener之前执行,这给我们带来了问题,因为PhaseListener依赖于上下文侦听器已经完成的一些初始化 我假定这是因为在加载类时调用了静态初始化器,但是为什么要在servlet上下文侦听器之前加载它呢?我认为上下文侦听器是启动web应用程序时加载和运行的第一件事情 有人知道发生这种情况的确切原因吗?即使在PhaseListener之前加载了ServletContextListener(由类加载

我发现在WAS8中,
PhaseListener
上的静态初始化器在
ServletContextListener
之前执行,这给我们带来了问题,因为PhaseListener依赖于上下文侦听器已经完成的一些初始化

我假定这是因为在加载类时调用了静态初始化器,但是为什么要在servlet上下文侦听器之前加载它呢?我认为上下文侦听器是启动web应用程序时加载和运行的第一件事情


有人知道发生这种情况的确切原因吗?

即使在PhaseListener之前加载了ServletContextListener(由类加载器加载),它仍然不会启动应用程序(和ServletContextListener),直到加载完类。所以这不会改变任何事情。但是,应该按照定义的顺序调用web.xml中定义的侦听器,因此确保
PhaseListener
位于其他侦听器之后,您应该能够在侦听器初始化时进行初始化。这是Mojarra和Apache实现之间的一个实现差异。websphere中的错误设置加载了与WAS绑定的JSF,而需要使用我们自己的JSF。