Grails run应用程序失败,原因是:";java.lang.ClassNotFoundException:org.docx4j.openpackaging.packages.WordprocessingMLPackage";
我已经将我的应用程序更新为Grails2.3,现在在启动和运行应用程序时遇到了一个非常令人沮丧的问题。我希望有人能提供一些帮助。我们依赖doc4j,每次运行应用程序时,我都会得到一个“java.lang.ClassNotFoundException:org.docx4j.openpackaging.packages.WordprocessingMLPackage” 在做了一些研究之后,我发现这个问题可能与我的类路径中没有docx4j的所有依赖项有关,但是我已经检查并验证了这里列出的所有依赖项都在“Grails依赖项”中,在下面: 属性->JavaBuildPath->库 导致故障的软件包也位于以下位置: Grails Dependencies->Docx4j-2.5.0.jar->org.Docx4j.openpackaging.packages-> WordprocessingMLPackage.class 这是我的堆栈跟踪:Grails run应用程序失败,原因是:";java.lang.ClassNotFoundException:org.docx4j.openpackaging.packages.WordprocessingMLPackage";,java,grails,noclassdeffounderror,docx4j,Java,Grails,Noclassdeffounderror,Docx4j,我已经将我的应用程序更新为Grails2.3,现在在启动和运行应用程序时遇到了一个非常令人沮丧的问题。我希望有人能提供一些帮助。我们依赖doc4j,每次运行应用程序时,我都会得到一个“java.lang.ClassNotFoundException:org.docx4j.openpackaging.packages.WordprocessingMLPackage” 在做了一些研究之后,我发现这个问题可能与我的类路径中没有docx4j的所有依赖项有关,但是我已经检查并验证了这里列出的所有依赖项都在
| Loading Grails 2.3.0
| Configuring classpath.
| Environment set to development.....
| Packaging Grails application.....
| Error log4j:ERROR Property missing when configuring log4j: appName
| Running Grails application
| Error log4j:ERROR Property missing when configuring log4j: appName
2013-09-19 21:34:23,746 ERROR [context.ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
... 5 more
Caused by: java.lang.reflect.InvocationTargetException
... 5 more
Caused by: java.lang.NoClassDefFoundError: org/docx4j/openpackaging/packages/WordprocessingMLPackage
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.getDeclaredMethods(Class.java:1810)
... 5 more
Caused by: java.lang.ClassNotFoundException: org.docx4j.openpackaging.packages.WordprocessingMLPackage
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 7 more
2013-09-19 21:34:23,762 ERROR [context.GrailsContextLoader] Error initializing the application: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
... 5 more
Caused by: java.lang.reflect.InvocationTargetException
... 5 more
Caused by: java.lang.NoClassDefFoundError: org/docx4j/openpackaging/packages/WordprocessingMLPackage
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.getDeclaredMethods(Class.java:1810)
... 5 more
Caused by: java.lang.ClassNotFoundException: org.docx4j.openpackaging.packages.WordprocessingMLPackage
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 7 more
如果您能提供任何帮助,我将不胜感激。谢谢
-----编辑-----
我正在添加BuildConfig.groovy,以防它提供任何额外信息:
/moving plugins dir to plugins directory under main project folder
grails.project.plugins.dir = 'plugins'
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
//grails.project.war.file = "target/${appName}-${appVersion}.war"
grails.project.dependency.resolver = "maven"
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
// uncomment to disable ehcache
// excludes 'ehcache'
}
log "warn"
repositories {
grailsPlugins()
grailsHome()
grailsCentral()
// uncomment these to enable remote dependency resolution
// from public Maven repositories
mavenCentral()
mavenLocal()
//mavenRepo "http://snapshots.repository.codehaus.org"
//mavenRepo "http://repository.codehaus.org"
//mavenRepo "http://download.java.net/maven/2/"
//mavenRepo "http://repository.jboss.com/maven2/"
}
dependencies {
// specify dependencies here under either 'build', 'compile',
// 'runtime', 'test' or 'provided' scopes eg.
// runtime 'mysql:mysql-connector-java:5.1.16'
}
plugins {
//----- for versions before 2.3 -----//
//compile ":hibernate:$grailsVersion"
//build ":tomcat:$grailsVersion"
// for versions after 2.3
//compile':hibernate:3.6.10.M3'
// moved from application.properties
compile ":cookie:0.4"
compile ":dojo:1.7.2.0"
compile ":help-balloons:1.4"
compile ":jsecurity:0.4.1"
compile ":p6spy:0.5"
compile ":searchable:0.6.4"
runtime ":hibernate:3.6.10.1"
build ':tomcat:7.0.41'
}
}
您是在使用BuildConfig.groovy包含此依赖项、lib目录还是其他内容?如果是BuildConfig,文件是什么样子的?您试图从何处执行“运行应用程序”命令?控制台还是IDE内部?如果是IDE,什么IDE?嗨,dspies。谢谢你的回复。依赖项本身在我的lib文件夹中,它会自动添加到构建路径中“Grails依赖项”下的项目中。我正在使用最新的Spring工具套件IDE,这就是我执行“run app”的地方。我还添加了BuildConfig.groovy,以防有所帮助。您是否尝试过运行
grails依赖关系报告
()。此外,可搜索插件不支持Grails 2.3您是否有能力/自由升级到docx4j 2.7.1或更高版本?运行依赖关系报告后,我似乎得到: