java - AntClassLoader 无法转换为 URLClassLoader

标签 java jsp ant

我有一个用 Jasper 编译 jsp 文件的 Ant 任务。第一步是生成 java 文件:

<java classname="org.apache.jasper.JspC" fork="no" failonerror="true">
    <classpath refid="my.class.path" />
    <arg value="-uriroot" />
    <arg value="${apps}" />
    <arg value="-d" />
    <arg value="${jsp}" />
    <arg value="-p" />
    <arg value="my.package.jsp" />
    <arg value="-webinc" />
    <arg value="${apps}/META-INF/gen-mappings.xml" />
    <arg value="-webapp" />
    <arg value="${apps}" />
</java>

当我启动这个任务时,我得到:

BUILD FAILED
java.lang.ClassCastException: org.apache.tools.ant.AntClassLoader cannot be cast
 to java.net.URLClassLoader
        at org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext
.java:113)
        at org.apache.jasper.JspC.initServletContext(JspC.java:1257)
        at org.apache.jasper.JspC.execute(JspC.java:1118)
        at org.apache.jasper.JspC.main(JspC.java:243)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        ...

我该如何解决这个问题? 谢谢!

克劳迪奥

最佳答案

我认为您不应该像那样直接调用JspC。 Tomcat 专门为此提供了一个 Ant 任务,它可以为您完成必要的类加载器操作

http://tomcat.apache.org/tomcat-6.0-doc/jasper-howto.html#Web%20Application%20Compilation

<jasper 
         validateXml="false" 
         uriroot="${webapp.path}" 
         webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml" 
         outputDir="${webapp.path}/WEB-INF/src" /> 

关于java - AntClassLoader 无法转换为 URLClassLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749500/

相关文章:

java - 参数类型中的这三个点是什么

jsp - JSP/Servlet 的隐藏特性

jsp - 使用 Java 中的过滤器验证用户名、密码(与数据库联系)

javascript - 在聊天应用程序中发送本地语言消息时出现 UTF-8 问题?

java - Arraylist 无法解析为类型?如何纠正?

java - Android - 后台任务的最佳实践是什么?

java - 在 Maven2 Web 应用程序中使用 JSBuilder2.jar

java - 在 Eclipse 中导入 ant build.xml

java - 编译不在同一个包中的3个文件

java - 类未找到异常 : While Executing Ant Script for JUNIT?