Ich verwende Ant 1.9.3 und Tomcat Version 8.0. Ich verwende das Ziel "Ant deploy
", um Webanwendungen mit den Anmeldeinformationen manager
im Apache Tomcat bereitzustellen. Das deploy
Ziel schlägt mit folgenden Ausnahme:Bereitstellen der Webanwendung mit Ant-Ergebnissen in 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
Als ich versuchte, die Klasse Base64
im Paket org\apache\tomcat\util\codec\binary\
, die in tomcat-util.jar
zu finden, und es ist in dem Classpath, die ich durch ein Echo in Ant-Build überprüft habe Datei.
Ich bin nicht in der Lage, das Problem zu lösen.
Sie müssen die ANT, die Sie verwenden, mit uns versorgen, um Ihr Problem zu beheben. Sie geben an, dass sich das Jar im Classpath befindet, der JVM-Fehler jedoch anders. Ich vermute, dass es ein Problem mit der Art und Weise gibt, wie der tomcat "deploy" Task in Ihrem Build deklariert wurde. –
Ich habe dieses Problem auch mit 1.9.4. Ich habe den Text aus der Antwort unten zu meiner Datei build.xml im Pfadabschnitt hinzugefügt, erhalte aber genau den gleichen Fehler wie zuvor. Ich bin mir nicht sicher, wie ich in die tomcat-util.jar-Datei schauen kann, wie es das OP getan hat, ohne eine Menge von dem zu bekommen, was ich für Java-Bytecode halte, also weiß ich nicht, wie ich es verifizieren soll. Hier ist ein [link] (http://docs.spring.io/docs/Spring-MVC-step-by-step/part1.html) zu dem Tutorial, das ich verwende. Es gibt ein paar subtile Versionsfehler, die ich durchgemacht habe; Dieser kommt nach unten, wenn der Benutzer aufgefordert wird, "Ameisenliste" aufzurufen. – kurofune