0

我有一个在 WildFly 23/Java 11/Windows 2016 上运行的 Java 应用程序服务。该应用程序的目的是从模板 (.dotx) 生成 Microsoft Word 文档 (.docx)。此应用程序读取模板并将生成的文档写入 Azure 存储帐户文件共享。访问文件共享所需的 Windows 凭据在与服务关联的用户的“控制面板\用户帐户\凭据管理器”中可见,并且生成服务按预期工作。

在第二阶段,Java 应用程序还可以将生成的 Word 文档转换为 PDF。对于转换过程,Java 应用程序使用 Microsoft Word 来打开生成的 Word 文档并将其保存为 PDF。

Java 应用程序使用 JNIwrapper 生成的 Java 包装器启动 Microsoft Word DCOM 组件:

INSTANCE.wordApplication = new _ApplicationImpl(CLSID.create(WORD_APPLICATION), ClsCtx.LOCAL_SERVER);

“Microsoft Word 97 - 2003 Document”DCOM 应用程序标识已修改为使用服务凭据运行应用程序,但 Word 文档的实例化失败。

当 Microsoft Word 尝试访问文件共享时,Sysinternals 的进程监视器会显示登录失败,而使用同一用户运行的 Java 进程成功。用户的 Windows 凭据似乎不适用于 Microsoft Word DCOM 组件。我可以做些什么来使这些凭据可用于 Microsoft Word DCOM 组件吗?

进程监视器文件相关事件

4

0 回答 0