1

我一直在尝试使用动态报告生成报告文件,但它似乎并没有在服务器上创建文件。当我使用在本地运行的相同方法时,它会生成文件,但是当我在服务器上运行它时,没有创建文件。我在 Eclipse 中运行 Tomcat 7。该文件应该使用FileOutputStream创建。

好吧,这是在本地有效的方法,但在 Tomcat 上无效:

StyleBuilder plainStyle = stl.style().setFontName("FreeUniversal");
StyleBuilder boldStyle = stl.style(plainStyle).bold();
StyleBuilder italicStyle = stl.style(plainStyle).italic();
StyleBuilder boldItalicStyle = stl.style(plainStyle).boldItalic();

try {
    report().title(
        Templates.createTitleComponent("Fonts"),
        cmp.text("FreeUniversal font - plain").setStyle(plainStyle),
        cmp.text("FreeUniversal font - bold").setStyle(boldStyle),
        cmp.text("FreeUniversal font - italic").setStyle(italicStyle),
        cmp.text("FreeUniversal font - bolditalic").setStyle(boldItalicStyle))
        .toDocx(createFile("docx"))
//      .show()
        ;
} catch (DRException e) {
    e.printStackTrace();
}

哦,还有 CreateFile(...) 方法:

private FileOutputStream createFile(String extension) throws FileNotFoundException {
    FileOutputStream file;
    String filePath = reportsPath + "generated_report." + extension;
    filePath = "generated_report." + extension;
    System.out.println("FILENAME IS: " + filePath);

    file = new FileOutputStream(new File(filePath));

    return file;
}

我知道这里的reportsPath 没有激活。

所以没有例外。顺便说一句,其他文件也可能不会在此服务器上创建,因为我也在通过 servlet 上传文件并且它被使用,但是它没有出现在路径中的任何位置并且它没有t似乎被保存了,但我不需要保留上传的文件,所以这不是什么大问题,但是现在这个呢?我需要能够找到这些报告,因此必须创建文件。

而且我确定这不是我找不到文件,我到处都在运行搜索,实际上在我运行服务器的所有计算机中,没有使用该名称创建的文件......

那么,有什么想法吗?一定是Tomcat配置问题还是什么?

有任何想法吗?谢谢

4

1 回答 1

0

输出已写入您在构造函数中提供的文件。如果这是一个相对文件名,那么它是相对于您执行代码时的当前工作目录的。

否则抛出 IOException 并且代码根本没有执行。

于 2013-06-01T01:24:11.110 回答