使用<loader delegate =“true”>配置tomcat上下文文件的替代方法是什么?

时间:2016-06-08 10:37:06

标签: java eclipse web-applications tomcat7 tomcat8

我最近在Web应用程序上工作我遇到了ClassCastException问题,发现同一个类已被两个不同的ClassLoader加载。我无法在群集中重现此问题。我只在本地环境中遇到此问题。我使用<Loader delegate =true />配置了Tomcat Context.xml 这解决了我的ClassCastException问题,使用了here所述的适当的ClassLoading机制。现在,因为它已经在集群中正常工作,所以我不想在context.xml中进行更改。那么还有其他方法。

3 个答案:

答案 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