2016-06-14 8 views
0

サーバー側では、SVGファイルをPDFに変換するためのクラスがあります。Apache TomcatでのGWTアプリケーションのデプロイ

public class PdfHandler { 
    private File savedFile; 
    private File svgTempFile; 

    public PdfHandler(String fileName) { 
     this.savedFile = new File(File.separator + "documents" + File.separator + fileName); 
    } 

    public void convertToPdf(String inputFileName) { 
     this.svgTempFile = new File(inputFileName); 
     System.out.println(inputFileName); 
     if (this.svgTempFile.exists()){ 
      System.out.println("Svg File exists"); 
     } 
     else { 
      System.out.println("Svg File not exists"); 
     } 

     try { 
      Transcoder transcoder = new PDFTranscoder(); 
      System.out.println("Transcoder created"); 
      FileInputStream fis = new FileInputStream(this.svgTempFile); 
      System.out.println("Input stream created"); 
      FileOutputStream fos = new FileOutputStream(this.savedFile); 
      System.out.println("Output stream created"); 
      TranscoderInput transcoderInput = new TranscoderInput(fis); 
      System.out.println("Transcoder input created"); 
      TranscoderOutput transcoderOutput = new TranscoderOutput(fos); 
      System.out.println("Transcoder output created"); 
      transcoder.transcode(transcoderInput, transcoderOutput); 
      System.out.println("Conversion finished"); 

      fis.close(); 
      fos.close(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
      System.out.println("Exception"); 
     } finally { 
      this.svgTempFile.delete(); 
      System.out.println("File deleted"); 
     } 
      System.out.println("End of method"); 
    } 
} 

RPCで呼び出されるメソッドがあります。

public String generatePdf(PayDoc filledDoc) { 
    //String svgFileName = this.generateSvg(filledDoc); 
    //String pdfFileName = this.generateFileName("pdf"); 
    PdfHandler pdfHandler = new PdfHandler("myPdf.pdf"); 
    pdfHandler.convertToPdf(File.separator + "documents" + File.separator + "mySvg.svg"); 
     return null;//pdfFileName; 
} 

eclipseではすべて正常に動作しますが、Tomcatでは動作しません。私はTomcatの でそれを呼び出すときにRPCが失敗した。これは、Tomcatのコンソール出力です:私は「mySvg.svg」(まだ削除されていない)と「myPdf.pdfを」持っている「ドキュメント」フォルダ内のその後

\documents\mySvg.svg 
Svg File exists 
Transcoder created 
Input stream created 
Output stream created 
Transcoder input created 
Transcoder output created 
File deleted 

(それはあります空の)。

+0

_ "TomcatでRPCが失敗する" _失敗しますか? tomcatのエラーログには何が入っていますか? – Baz

+0

java.lang.NoClassDefFoundError:org/w3c/dom/ElementTraversal –

答えて

1

デプロイされたアプリケーションに必要なライブラリが含まれていないようです。

ElementTraversalxml-apis-X.XX.X.jarの一部で、アプリケーションにバンドルする必要があります。

ビルドツールが多く、使用しているツールがわからないため、変更を提案できません。

+1

ありがとうございます。私はBatikからすべてのJARを追加するのではなく、私が直接使用したものだけを追加しました。それが私の問題の原因です。 libのすべてのJARが必要です。 –

関連する問題