Windows 凭据不可用于 DCOM 组件

问题描述

我有一个在 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 文档”DCOM 应用程序标识已修改为使用服务凭据运行应用程序,但 Word 文档的实例化失败。

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

Process Monitor file related events

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)