2012-09-03 35 views
1

我想在Websphere上部署企业项目。JSF部署错误“在javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300)”

我收到以下异常。

可能是什么原因?

[03.09.12 11:21:05:636 CEST] 0000001a webapp  E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated SRVE0283E: Exception caught while initializing context: {0} 
           java.lang.StackOverflowError 
    at java.lang.ThreadLocal$ThreadLocalMap.getEntry(ThreadLocal.java:371) 
    at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:254) 
    at java.lang.ThreadLocal.get(ThreadLocal.java:138) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:293) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 
    at javax.faces.context.FacesContext.isProcessingEvents(FacesContext.java:300) 

回答

2

堆栈跟踪suggests,你之前使用的MyFaces和在某些时候在代码中FacesContext.setCurrentInstance(FacesContext.getCurrentInstance())时被调用,这将导致这种无限循环的。

这就是我能够基于目前所提供的信息来判断的。我不知道为什么当前实例的面部背景的当前实例已设置。也许这是你自己的代码中的错误,或者是错误的配置。验证类路径是否有污染(复制旧的版本化JAR),并验证任何启动代码(如Filter#init(),ServletContextListener#contextInitialized()等),如果它没有做一些奇怪的事情。

+0

感谢您的回答。 – Kayser

+0

不客气,但您是否能够找到原因找到解决方案?如果是这样,请告知原因和解决方案,以便其他人可能会受益。 – BalusC

+0

感谢您的提示。我检查了我的代码。一切都很好。我使用MyEclipse 10.5。我认为它可能是配置问题。但实际上这是Myeclipse中的一个错误。我更新到版本10.6。现在一切正常。 – Kayser