将通过POI生成的文件附加到备注文档

时间:2015-07-20 05:40:03

标签: apache-poi xpages lotus-domino lotus

我需要将XET页面上的Apache POI生成的文件附加到备注文档中。我一直试图按照Knut Herrmann的建议实施一个解决方案:

var temp = java.lang.System.getProperty("java.io.tmpdir");
var file = new java.io.File(temp + "YourFile.docx"); 
var fileOutputStream = new java.io.FileOutputStream(file);
xwpfdocument.write(fileOutputStream);
fileOutputStream.close();

var doc:NotesDocument = currentDocument.getDocument();
var rdoc:NotesDocument = database.createDocument();
rdoc.appendItemValue("Form", "frmRespTempl");
rdoc.appendItemValue("Subject", "Embedded Word Document");
var rtitem:RichTextItem = rdoc.createRichTextItem("Body");
rtitem.embedObject(lotus.domino.local.EmbeddedObject.EMBED_ATTACHMENT,"",file.getAbsolutePath(), null);
rdoc.makeResponse(doc);
rdoc.save();

POI for XPages - save Word document as attachment in rich text field

但是,为了使xwpfdocument.write(fileOutputStream)工作,需要修改java策略文件,这是一个安全风险。

我没有运气使java解决方案工作。有没有其他方法可以使这个代码工作?修改java策略的风险究竟是什么?

由于

1 个答案:

答案 0 :(得分:0)

您是在浏览器中还是在Notes客户端中运行代码,因为如果您要将文件发送到用户端,代码将永远不会在浏览器中运行。它可以在服务器端工作。

如果要在Notes客户端中附加本地文档,我建议您使用代码来启动Notes代理,以嵌入文件。

我认为你可以而不是修改java.policy文件 编写一个在jar文件中实现的类,并将该jar文件放在服务器上的类路径中,并从XPage代码中实例化它。