我正在使用Ant 1.9.3和Tomcat版本8.0。我正在使用Ant deploy
目标,使用manager
凭据在Apache Tomcat中部署Web应用程序。该deploy
目标失败,出现以下异常:使用Ant部署Web应用程序会导致NoClassDefFoundError
java.lang.NoClassDefFoundError:
org/apache/tomcat/util/codec/binary/Base64
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalina
Task.java:204)
at org.apache.catalina.ant.DeployTask.execute(DeployTask.java:196)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
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.codec.binary
.Base64
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 19 more
当我试图找到类Base64
在包org\apache\tomcat\util\codec\binary\
这是tomcat-util.jar
,这是我已经在Ant构建回声验证类路径文件。
我无法解决问题。
您需要提供您正在使用的ANT来解决您的问题。您声明该jar位于类路径中,但JVM错误另有说明。我怀疑这是在构建中声明了tomcat“deploy”任务的一个问题。 –
我也遇到了1.9.4的问题。我已经将下面的答案中的文本添加到我的build.xml文件的路径部分,但是得到的错误与以前完全相同。我不确定如何看待tomcat-util.jar文件,因为OP没有得到一堆我认为是Java字节码的东西,所以我不知道如何验证。这里是我正在使用的教程的[链接](http://docs.spring.io/docs/Spring-MVC-step-by-step/part1.html)。我遇到了一些微妙的版本错误,当用户被要求调用'ant list'时,这个指向底部。 – kurofune