Tomcat webapp ClassLoader不支持运行时编译

时间:2012-09-19 11:53:20

标签: java tomcat maven

我有一些在运行时生成并使用

编译的Java类

JavaCompiler.CompilationTask

生成的代码引用其他项目中的类,这些项是我项目的maven依赖项。一切都在本地运行良好,但当我部署到我们的开发Tomcat服务器时,我得到了一堆

"package xxx does not exist"

"cannot find symbol"

编译任务中的错误。我检查了Tomcat部署的webapp项目的 WEB-INF / lib 目录,并且所有的jar都在那里,包括项目依赖项。是不是WEB-INF/lib目录中的所有内容都应该在运行时可用于Tomcat项目?

编辑:这是我的context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="${catalina.home}/webapps/kdweb/WEB-INF/lib/acommons-0.0.1-SNAPSHOT.jar;${catalina.home}/webapps/kdweb/WEB-INF/lib/abizcommons-0.0.1-SNAPSHOT.jar;${catalina.home}/webapps/kdweb/WEB-INF/lib/kd_market_data-common-0.0.1-SNAPSHOT.jar;${catalina.home}/webapps/kdweb/WEB-INF/lib/aggregation-0.0.1-SNAPSHOT.jar;${catalina.home}/webapps/kdweb/WEB-INF/lib/apods-client-0.0.1-SNAPSHOT.jar;${catalina.home}/webapps/kdweb/WEB-INF/lib/framework-common-0.0.1-SNAPSHOT.jar" />
</Context>

1 个答案:

答案 0 :(得分:1)

您可以使用Loader并将reloadable设置为true。(This也可能相关)