2017-01-28 14 views
2

Apache Tomcatインストールからアプリケーションを実行するときにのみ発生するDocuments4jライブラリを使用して.docxから.pdfに変換する際に問題があります。Apache Tomcatエラー(eclipseまたはxampp tomcatから)

ただし、EclipseまたはXAMPPを使用してアプリケーションを実行すると、apache tomcatが正常に動作します。

私はWindows 10、Windows 7、Windows Server 2012にapache tomcat 8と8.5を試しましたが、問題は解決しません。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ page import="com.documents4j.api.IConverter, 
    com.documents4j.job.LocalConverter, 
    com.documents4j.api.DocumentType, 
    java.io.File" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<% 
    IConverter converter = LocalConverter.make(); 
    converter.convert(new File("C:\\test\\test.docx")).as(DocumentType.DOCX).to(new File("C:\\test\\test.pdf")).as(DocumentType.PDF).execute(); 
%> 
</body> 
</html> 

依存性::

<dependencies> 
    <!-- Local dependencies --> 
    <!-- https://mvnrepository.com/artifact/com.documents4j/documents4j-local --> 
    <dependency> 
     <groupId>com.documents4j</groupId> 
     <artifactId>documents4j-local</artifactId> 
     <version>1.0.2</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/com.documents4j/documents4j-transformer-msoffice-word --> 
    <dependency> 
     <groupId>com.documents4j</groupId> 
     <artifactId>documents4j-transformer-msoffice-word</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
</dependencies> 

エラー:

org.apache.jasper.JasperException: com.documents4j.throwables.ConverterException: Conversion failed for an unknown reason 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:565) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
com.documents4j.throwables.ConverterException: Conversion failed for an unknown reason 
    com.documents4j.job.AbstractFutureWrappingPriorityFuture.run(AbstractFutureWrappingPriorityFuture.java:90) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    java.lang.Thread.run(Unknown Source) 
+0

セキュリティに関することがあります。実際にはweb-appの独自のディレクトリにあるファイルに対しては機能しますか? – nitind

答えて

1
それは

JSP正しく動作可能のApache Tomcatを実行しているときに

EclipseやXAMPPは "何か" を行います

あなたコンバータの明示的なベースフォルダを指定しようとする可能性があります。アプリケーションコンテナは、デフォルトの一時フォルダとは異なる暗黙的な一時フォルダを定義することがよくあります。このフォルダ内のスクリプトを実行すると、問題が発生する可能性があります。実行時にjava.io.tmpdirプロパティをチェックすると、一時フォルダを確認できます。

別の問題として、ベースフォルダにスペースが含まれていないことを確認してください。 1.0.3にもアップデートしてください。ここでは、このようなスペースの処理が改善されています。 Maye Tomcatは "Program Files"にインストールされていますが、これは問題の可能性があります。