首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoClassDefFound尝试从grails控制器使用java类和docx4j

NoClassDefFound尝试从grails控制器使用java类和docx4j
EN

Stack Overflow用户
提问于 2010-09-07 22:29:53
回答 2查看 715关注 0票数 0

我有一个groovy文件,它试图从我使用docx4j设置的Java类中调用一些方法来解析.docx文件

当我在eclipse中设置一个纯java测试程序时,我能够很好地做到这一点。然而,当我设置了我的.groovy文件时,我没有得到编译错误,但是在运行时我得到了这个堆栈跟踪:

代码语言:javascript
复制
 org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/docx4j/wml/RPr

at org.jsecurity.web.servlet.JSecurityFilter.doFilterInternal(JSecurityFilter.java:382)

at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180)

 Caused by: java.lang.NoClassDefFoundError: org/docx4j/wml/RPr

at java.lang.Class.getDeclaredMethods0(Native Method)

at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)

at java.lang.Class.getDeclaredMethods(Class.java:1763)

at java.security.AccessController.doPrivileged(Native Method)

at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:33)

at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:20)

at ResumeController$_closure8.doCall(ResumeController.groovy:119)

at ResumeController$_closure8.doCall(ResumeController.groovy)

我不太明白问题是什么--这是groovy文件的相关部分:

代码语言:javascript
复制
 import mypackage.DocxHelpers.DocxParser;
 import org.docx4j.*;
 class ResumeController{
 def save = {

    File f=new File('c:/dev/temp/test.docx');
    uploadedFile.transferTo(f);

    DocxParser doc=new DocxParser(); //line 119
    def resume=doc.openDocx4j(f);
    f.delete();
    resumeInstance.entireResume=resume;
    flash.message="Resume parsed";
    render(view:'create',model:[resumeInstance:resumeInstance]);

 }
 }

与DocxParser相关的java内容位于项目文件夹下的src文件夹中,而docx4j jar位于lib文件夹中。

是我的导入定义不正确,还是文件放错了位置?

EN

回答 2

Stack Overflow用户

发布于 2010-09-07 22:36:17

看起来您的运行时类路径中没有docx4j JAR。上面的代码似乎属于Grails控制器。您是否检查过NoClassDefFoundError引用的类是否存在于Grails /lib目录下的Grails JAR中?

票数 0
EN

Stack Overflow用户

发布于 2010-09-07 22:48:27

看起来没有找到的类在org.docx4j.wml包中,但是import语句引用了org.docx4j包。尝试将导入更改为import org.docx4j.wml.*;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3659591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档