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文件中,使其位于正确的类加载器中(尽管某些容器会阻止此解决方案).

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

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...