2010-09-07 2 views
0

У меня есть заводной файл, который пытается вызвать некоторые методы из класса Java, который я создал с помощью docx4j для разбора .docx файловNoClassDefFound пытается использовать класс Java и docx4j от контроллера Grails

Когда я настраивал чистая тестовая программа java в eclipse, я в состоянии сделать это хорошо. Тем не менее, когда я мой файл .groovy установить, я не получаю ошибки компиляции, но во время выполнения я получаю эту трассировку стека:

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) 

Я не могу достаточно выяснить, в чем проблема - вот соответствующий часть Автошоу заводного файла:

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 в папке Src под мою папкой проекта, и docx4j банка находится в папке Lib.

Я просто неправильно определил свой импорт или файлы не в том месте?

+0

ваш код java находится в каталоге src/java ... и информация о пакете и импорте были проверены в этих файлах? –

ответ

0

Похоже, что у вас нет JAR-пакетов docx4j на вашем пути к среде выполнения. Вышеприведенный код, похоже, принадлежит контроллеру Grails. Вы проверили, что класс, на который ссылается NoClassDefFoundError, присутствует в каталоге docx4j JAR (s) в каталоге Grails /lib?

+0

Да, он есть – Derek

0

Похоже, что этот класс не найден в пакете org.docx4j.wml, но оператор import ссылается на пакет org.docx4j. Попробуйте изменить импорт на import org.docx4j.wml.*;.

+0

Пробовал то..показать ту же ошибку – Derek

Смежные вопросы