我在Tomcat的(7.0.55)的自定义WebappClassLoader这是在server.xml配置为定制的ClassLoader JSP编译错误
<Context allowCasualMultipartParsing="true">
<Loader loaderClass="org.project.system.core.classloader.DynamicClassLoader" />
</Context>
它的加载和一切都很好,但是当我打开它装载了类org.test.User这不是WEB-INF/classes目录下,但通过我的DynamicClassLoader中加载我得到这个错误JSP:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 7 in the generated java file
Only a type can be imported. org.test.User resolves to a package
所以,我做了一些调试,并在每个loadClass的是检查打电话,如果我的课被加载,是的:就在这个错误消息之前,我看到我的调试信息:
Trying to load org.test.User found!
Trying to load org.test NOT FOUND!!
Trying to load org.test NOT FOUND!!
Trying to load org.apache.el.ExpressionFactoryImpl found!
Trying to load com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl found!
Trying to load com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl found!
Trying to load org.apache.el.ExpressionFactoryImpl found!
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 7 in the generated java file
Only a type can be imported. org.test.User resolves to a package
所以看起来,jsp编译器要求User类。但真正奇怪的是,如果我使用eclipse执行它,一切都正常!当然,输出看起来与错误消息相同。我仔细检查了eclipse和我的配置文件,但我没有看到任何区别。
你知道什么可能是错的吗?为什么它在eclipse中没有任何错误,但不在“正常”的tomcat安装中运行?请让我知道,如果你需要任何进一步的信息!提前致谢!
这些名字就像在例子“org.test.User”中,所以应该不会有命名上的问题,应该如何? – user2084865 2014-09-23 17:22:46
你也有'org.test.user.OtherClass'吗? – 2014-09-23 20:16:24
是的,这个包里有多个类。 – user2084865 2014-09-23 21:00:04