我最近正在开发一个Web应用程序,我遇到了ClassCastException的问题,发现同一个类被两个不同的ClassLoader加载。我无法在群集中重现此问题。我仅在本地环境中遇到此问题。我配置了 Tomcat 上下文.xml <Loader delegate =true />
这解决了我的ClassCastException问题,并具有正确的ClassLoad机制,如此处所述。现在,由于它在集群中已经运行良好,我不想在上下文中进行更改.xml。那么有没有其他方法。
根据 Tomcat 文档,
"加载器元素可以嵌套在上下文组件中。如果未包含,将自动创建默认加载程序配置。
因此,您可以在服务器中执行此操作.xml而无需更改 Context.xml 文件。
<Context path="" docBase="" debug="0">
<Loader delegate="true"/>
</Context>
干杯
No.配置委派的唯一方法是通过嵌套在 Context
元素中的 Loader
元素。
的标准实现是 org.apache.catalina.loader.WebappLoader。它支持属性 loaderClass。
自定义实现必须扩展 org.apache.catalina.loader.WebappClassLoaderBase
@seehttps://tomcat.apache.org/tomcat-8.0-doc/config/loader.html