我最近在Web应用程序上工作我遇到了ClassCastException问题,发现同一个类已被两个不同的ClassLoader加载。我无法在群集中重现此问题。我只在本地环境中遇到此问题。我使用<Loader delegate =true />
配置了Tomcat Context.xml
这解决了我的ClassCastException问题,使用了here所述的适当的ClassLoading机制。现在,因为它已经在集群中正常工作,所以我不想在context.xml中进行更改。那么还有其他方法。
答案 0 :(得分:2)
根据Tomcat文档,
“Loader元素可以嵌套在Context组件中。如果不包含,则会自动创建默认的Loader配置。”
因此,您可以在server.xml中执行此操作,而无需更改Context.xml文件。
<Context path="" docBase="" debug="0">
<Loader delegate="true"/>
</Context>
干杯,
答案 1 :(得分:0)
没有。配置委派的唯一方法是通过嵌套在Loader
元素内的Context
元素。
答案 2 :(得分:0)
Loader的标准实现是org.apache.catalina.loader.WebappLoader。它支持loaderClass属性。
自定义实现必须扩展org.apache.catalina.loader.WebappClassLoaderBase
@see https://tomcat.apache.org/tomcat-8.0-doc/config/loader.html