2011-06-03 70 views
4

當我部署grails應用程序時,它在AntBuilder類中顯示classnotfound異常?我是否需要將任何jar文件添加到項目中?提前致謝。AntBuilder有些問題?

java.lang.ClassNotFoundException: org.apache.tools.ant.launch.AntMain 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(Unknown Source) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at org.apache.tools.ant.Project.initProperties(Project.java:308) 
    at org.apache.tools.ant.Project.init(Project.java:295) 
    at com.cabot.reader.BookController$_closure5.doCall(BookController.groovy:109) 
    at com.cabot.reader.BookController$_closure5.doCall(BookController.groovy) 
    at java.lang.Thread.run(Unknown Source) 
+0

你可以發佈堆棧跟蹤和一些關於你在做什麼,你如何部署,你正在部署到什麼等的更多細節?我的心理能力今天早上有限...;) – 2011-06-03 09:49:58

+0

我正在部署grails應用程序戰爭文件到tomcat服務器。 – 2011-06-03 09:56:20

+0

檢查WAR文件中是否存在Ant JAR。通常它們由Grails提供,並且位於Grails的lib目錄中。如果您使用'grails run-app'運行您的應用程序,您會遇到同樣的問題嗎?在部署之前,您還可以嘗試在運行WAR的嵌入式容器中使用'grails run-war'。您可能只需將Ant JAR複製到應用程序的'lib'即可。 – 2011-06-03 11:42:02

回答

8

Ant jars在run-app中可用,因爲它們需要運行腳本。但是這些罐子並不包含在戰爭中,因爲一般來說,Ant並未被網絡應用使用。但是你可以通過在grails-app/conf/BuildConfig.groovy聲明依賴它們包括:

dependencies { 
    compile 'org.apache.ant:ant:1.7.1' 
    compile 'org.apache.ant:ant-launcher:1.7.1' 
} 
+0

非常感謝。有用。 – 2011-06-06 05:16:20

+0

感謝它也爲我工作 – Johnny 2012-10-05 20:28:22

+0

感謝它爲我工作:) – 2013-07-03 17:02:22