我正在尝试在 XPage 应用程序中安装 docx4j 开源 java 库,但到目前为止尚未成功。我已经下载了 docx4j-3.1.0.jar 并将其添加到 domino 服务器和本地计算机上的 \jvm\lib\ext 文件夹中。我还使用 Package Explorer 视图将 docx4j-3.1.0.jar 添加到 WebContent\WEB-INF\lib 文件夹中,然后右键单击 .jar 并选择“构建路径”->“添加到构建路径”这样 .jar 现在就出现在“引用的库”下。
在我用来测试的 Java 类中,我看到消息“此元素没有附加源,并且在附加 Javadoc 中找不到 Javadoc”。我的代码如下:
package TESTPackage;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
public class JavaDoc {
public void createJavaDoc() {
try {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
wordMLPackage.getMainDocumentPart().addParagraphOfText("Hello Word!");
wordMLPackage.save(new java.io.File("C:\\Temp\\HelloWord1.docx"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于我还必须做什么有什么建议吗?
我能够通过 XPage 中的按钮在 Notes 客户端中运行您的代码。要使该代码正常工作需要执行几个步骤(Domino 是一个难以可靠运行 Java 代码的平台):
将 docx4j及其依赖项添加到工作站/服务器的lib\ext目录中(您在 NSF 中也不需要它们。事实上,从那里删除它们)。
按如下方式编辑 Domino JVMjava.policy文件。(该文件通常位于安装目录下\jvm\lib\security)。请注意,对于开发工作,可以将此行添加到顶部,但您不能使用它进入生产:您需要通过通配符包名称或操作类型来关注允许的操作:
grant { permission java.security.AllPermission; };
重新启动 Notes/Domino Designer
构建您的项目。注意:如果您“清理”项目,请记住旧式“包含”Java 文件(即local在 Domino 8.5.2 或更早版本上直接放置在 NSF 文件夹中的文件)将被删除,因此您将需要重新创建它们。
按照您的帖子中的方式运行代码:现在应该生成文件。
您遇到的问题可能归结为两件事:(1)缺少依赖项;(2) Domino 中的安全设置禁止所需的类加载和反射操作。