2017-01-03 1 views
0

cette excpetion est jeter dans l'application web, mais dans une application autonome ne se produit pas cela. Toute idée, j'utilise docx4j 3.3.0.Docx4j jette une exception lors de la conversion en pdf

L'application qui exécute Jboss 6.3 eap.

Avant d'utiliser une version plus ancienne (3.2.2) mais ne pas jeter cette erreur.

JBWEB000309: type JBWEB000066: Exception report 

JBWEB000068: message Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest 

JBWEB000069: description JBWEB000145: The server encountered an internal error that prevented it from fulfilling this request. 

JBWEB000070: exception 

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest 
    org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1303) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    net.solser.admc.filter.RequestSecurityFilter.doFilter(RequestSecurityFilter.java:48) 
    net.solser.filter.compress.GzipFilter.doFilter(GzipFilter.java:35) 
JBWEB000071: root cause 

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest 
    org.docx4j.Docx4J.toPDF(Docx4J.java:592) 
    net.solsersistem.utils.pdf.PDFUtils.convertDocx4jToPDF(PDFUtils.java:45) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.sendFileToDownload(PurchasingRequisitionService.java:1190) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.sendFileToDownloadAndDeleteFile(PurchasingRequisitionService.java:1203) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.downloadDraftContract(PurchasingRequisitionService.java:349) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    java.lang.reflect.Method.invoke(Unknown Source) 
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) 
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) 
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) 
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    net.solser.admc.filter.RequestSecurityFilter.doFilter(RequestSecurityFilter.java:48) 
    net.solser.filter.compress.GzipFilter.doFilter(GzipFilter.java:35) 
JBWEB000071: root cause 

java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest from [Module "deployment.EARAdmContractRest.ear:main" from Service Module Loader] 
    org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) 
    org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) 
    org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) 
    org.docx4j.Docx4J.toPDF(Docx4J.java:592) 
    net.solsersistem.utils.pdf.PDFUtils.convertDocx4jToPDF(PDFUtils.java:45) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.sendFileToDownload(PurchasingRequisitionService.java:1190) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.sendFileToDownloadAndDeleteFile(PurchasingRequisitionService.java:1203) 
    net.solser.admc.service.purchasingflow.PurchasingRequisitionService.downloadDraftContract(PurchasingRequisitionService.java:349) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    java.lang.reflect.Method.invoke(Unknown Source) 
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) 
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) 
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) 
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    net.solser.admc.filter.RequestSecurityFilter.doFilter(RequestSecurityFilter.java:48) 
    net.solser.filter.compress.GzipFilter.doFilter(GzipFilter.java:35) 

réservoirs et salutations.

Répondre

0

On dirait que vous convertissez en PDF.

Selon les notes de version à http://www.docx4java.org/forums/announces/docx4j-3-3-0-released-t2381.html les choses ont changé dans v3.3.x:

défaut convertisseur PDF changé de FO + XSL Apache FOP à PDF Converter commercial Plutext. Sortie PDF basée sur XSL FO déplacée vers nouveau/projet séparé docx4j-export-fo; Nous avons fait ce changement après un examen minutieux, puisque la qualité/performance est tellement meilleure, et il supprime diverses dépendances de docx4j lui-même. Si vous voulez s'en tenir à la conversion PDF XSL FO + Apache FOP existante, pas de problèmes : - voir ci-dessous pour savoir comment. L'instance de PDF Converter sur converter-eval.plutext.com est utilisée par par défaut, mais vous pouvez (et devez!) L'installer localement; installateurs sont disponibles à http://converter-eval.plutext.com/

Pour utiliser votre propre instance, définissez docx4j propriété, par exemple:

com.plutext.converter.URL = http://converter-eval.plutext.com:80/v1/00000000-0000-0000-0000-000000000000/convert

Si vous voulez utiliser l'existant FO + XSL Apache Conversion PDF FOP, juste ajouter docx4j-export-fo (+ deps) à votre classpath. Si ceux-ci sont , docx4j retournera à la conversion FO. Ces fichiers sont dans le fichier zip, dans le répertoire optionnel/export-fo et également dans Maven Central.

Lorsque vous utilisez le convertisseur de PDF par défaut (celui du commerce), vous avez besoin des dépendances 3.x docx4j pertinentes, dans ce cas, https://github.com/plutext/docx4j/blob/master/pom.xml#L502

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.5.2</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.7.3</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.7.3</version> 
</dependency> 
+0

thats il, que j'ajouter une autre dépendance : ** org.apache.httpcomponents: httpcore ** –