【问题标题】:Deploying GWT application on Apache Tomcat在 Apache Tomcat 上部署 GWT 应用程序
【发布时间】:2016-06-14 06:27:19
【问题描述】:

在服务器端,我有一个用于将 SVG 文件转换为 PDF 的类。

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 控制台输出:

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

之后在“documents”文件夹中我有“mySvg.svg”(仍未删除)和“myPdf.pdf”(它是空的)。

【问题讨论】:

  • “在 Tomcat 上。RPC 失败” 失败怎么办? tomcat的错误日志是什么?
  • java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

标签: java tomcat gwt rpc batik


【解决方案1】:

看起来您没有在部署的应用程序中包含所需的库。

ElementTraversalxml-apis-X.XX.X.jar 的一部分,必须与您的应用程序捆绑在一起。

由于有很多构建工具,我不知道您使用的是哪一个,所以我无法建议更改。

【讨论】:

  • 谢谢。我没有添加来自 Batik 的所有 JAR,而只添加了我直接使用的那些。这就是我的问题的原因。 lib 中的所有 JAR 都是必需的。
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多