java - Ant,Tomcat 构建错误 : java. lang.NoClassDefFoundError: org/apache/tomcat/util/buf/B2CConverter

标签 java tomcat ant spring-mvc

Tomcat 版本:7.0.20

我正在尝试完成以下 Spring MVC 教程: http://static.springsource.org/docs/Spring-MVC-step-by-step/part1.html

在本教程中,ant 构建脚本被设置为使用管理器部署到 tomcat。但是,当我尝试运行任何 tomcat 任务时,我遇到了一些问题。

首先,在教程中,他们仍然使用已弃用的 org.apache.catalina.ant.InstallTask​​,所以我改为 org.apache.catalina.ant.DeployTask

现在的问题是,当我尝试运行 Tomcat 任务时:

java.lang.NoClassDefFoundError: org/apache/tomcat/util/buf/B2CConverter
    at org.apache.catalina.util.Base64.encode(Base64.java:177)
    at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:204)
    at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:150)
    at org.apache.catalina.ant.ReloadTask.execute(ReloadTask.java:45)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
 Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.buf.B2CConverter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 21 more

所以我搜索了一下,发现一些信息表明 tomcat-utils.jar 应该在类路径中,所以我将它添加到带有 catalina-ant.jar 的文件集中,但显然org.apache.tomcat.util.buf.B2CConverter 类不在里面。

所以接下来我开始使用 jar -tf 探查 jar 以找出是否有任何包含该类。我发现 tomcat-coyote.jar 有这个类。即使将它包含在文件集中,问题也没有解决。

有人有什么想法吗?

最佳答案

我通过将类路径更改为

<path id="catalina-ant-classpath">
    <!-- We need the Catalina jars for Tomcat -->
    <!--  * for other app servers - check the docs --> 
    <fileset dir="${appserver.lib}">
        <include name="catalina-ant.jar"/>
        <include name="tomcat-coyote.jar"/>
        <include name="tomcat-util.jar"/>
    </fileset>
    <fileset dir="${appserver.home}/bin">
                <include name="tomcat-juli.jar"/>
    </fileset>
</path>

关于java - Ant,Tomcat 构建错误 : java. lang.NoClassDefFoundError: org/apache/tomcat/util/buf/B2CConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251098/

相关文章:

java - Tic-Tac-Toe minimax算法不适用于4x4电路板

java - 找不到类 DoubleSummaryStatistics

Tomcat 和上下文路径

java - Tomcat + RMI 最好的方法?

java - 是否有可以从 Hudson/Jenkins 获取工件的 Ant 任务?

java - 错误的类文件使 ant 构建失败

java - 组合设计模式如何限制组件创建无限递归

java - 在 map 中找不到 macosx-x86-64 的 maven mac os Lib 文件

java - tomcat websocket servlet监听端口

java - 如何将导入的 jar 文件添加到 eclipse 中的 web-inf/lib 以用于我的构建?