微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

model-view-controller – java.lang.IllegalStateException:根上下文属性不是WebApplicationContext类型

我正在Tomcat 6上的Liferay 5.2.3上部署Portlets.我只为其中一个portlet收到此错误.

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

我做了一些研究,发现Spring在需要web时实例化portlet应用程序上下文.但在我的web.xml中,我只定义了contextLoaderListner

  

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

经过几次重新部署后,我得到了解决方案.有人能说点什么吗?

最佳答案
根本原因似乎是门户/应用程序服务器中的一个静态变量“挂在”portlet的类实例上.两个常见的罪魁祸首是log4j和java日志记录,两者都是应用程序包含者常用的.

有关记录器的更多讨论,请参见log4j and the thread context classloaderhttp://logback.qos.ch/manual/loggingSeparation.html.建议使用带有logback OR的SLF4J,以确保将log4j.jar放在WAR文件中,使其位于正确的类加载器中(尽管某些容器会阻止此解决方案).

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

原文地址:https://www.jb51.cc/spring/432155.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐