gpt4 book ai didi

model-view-controller - java.lang.IllegalStateException : Root context attribute is not of type WebApplicationContext

转载 作者:行者123 更新时间:2023-12-04 12:56:19 25 4
gpt4 key购买 nike

我在 Tomcat 6 上的 Liferay 5.2.3 上部署 Portlet。我只收到一个 Portlet 的错误。

 java.lang.IllegalStateException: Root context attribute is not of type WebApplicationContext

我做了一些研究,发现 Spring 在需要 Web 应用程序上下文时实例化了一个 portlet 应用程序上下文。但是在我的 web.xml 中,我只定义了 contextLoaderListner
  <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

最重要的是,如果 Spring 正在查找不同的 *.jar 文件,那么为什么我的其他 portlet 会被部署,除了一个?

经过几次重新部署后,我得到了解决。有人可以点灯吗?

最佳答案

根本原因似乎是门户/应用程序服务器中的静态变量“卡在”portlet 中的类的实例上。两个常见的罪魁祸首是 log4j 和 java 日志记录,它们都是应用程序容器常用的。

log4j and the thread context classloaderhttp://logback.qos.ch/manual/loggingSeparation.html有关记录器的更多讨论。建议是将 SLF4J 与 logback 一起使用,或者确保将 log4j.jar 放在您的 WAR 文件中,以便它位于正确的类加载器中(尽管某些容器会阻碍此解决方案)。

此外,容器中存在的一些其他类可能是原因。日志记录只是一个常见问题。

关于model-view-controller - java.lang.IllegalStateException : Root context attribute is not of type WebApplicationContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com