J'ai un fichier groovy qui tente d'appeler des méthodes d'une classe Java que j'ai mis en place à l'aide docx4j pour analyser .docx fichiersnoClassDefFound essayer d'utiliser la classe java et docx4j du contrôleur Grails
Quand je mis en place un programme de test pur java en éclipse, je suis capable de le faire très bien. Cependant, quand j'ai mon fichier .groovy mis en place, je reçois aucune erreur de compilation, mais lors de l'exécution, je reçois cette trace de la pile:
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)
Je ne peux pas comprendre tout à fait ce que le problème est - ici est la pertinente partie du thre fichier 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]);
}
}
My stuff java est lié à DocxParser dans le dossier src dans mon dossier de projet, et le pot de docx4j est dans le dossier lib.
Mes importations sont-elles simplement définies incorrectement ou les fichiers sont-ils au mauvais endroit?
votre code java est sur le répertoire src/java ... et les informations sur le paquetage et les importations ont été vérifiées dans ces fichiers? –