问题1:报错 Could not initialize class com.jacob.com.ComThread

问题分析

部署在Tomcat的WAR包中没有jacob对应的jar包。

解决方案

将jacob.jar放到WEB-INF/lib中即可解决该问题。


问题2:报错 VariantChangeType failed

问题分析

Jacob 本质上是调用微软的接口操作Word,类似于模拟用户在Office中进行操作,需要一个缓存地址。
当出现该错误时通常是无法访问缓存地址。

解决方案

在64位系统中
请在C:\Windows\SysWOW64\config\systemprofile\目录下新建一个Desktop的文件夹

在32位系统中
请在C:\Windows\System32\config\systemprofile\目录下新建一个Desktop的文件夹

可以使用BAT脚本文件快速创建,因为在服务器重启之后以下两个文件夹可能会被删除!

md C:\Windows\SysWOW64\config\systemprofile\Desktop
md C:\Windows\System32\config\systemprofile\Desktop

问题3:报错 Can't co-create object

问题分析

在Tomcat中部署使用Jacob的项目需要配置服务权限,因为Tomcat是以服务的形式运行。
在开发环境中,是以程序的形式运行并调用Word,只要系统当前用户有操作Word的权限即可。

解决方案

首先需要通过运行窗口打开 comexp.msc -32 服务配置窗口。

打开后的窗口界面如下图所示:
在打开的窗口中选择服务组件 - 计算机 - 我的电脑 - DCOM 配置
然后找到Microsoft Word 93-2003 文档 (Word 2003-2016测试都是此名称)
【PS:WPS也可以,服务名称是 WPS Word】

找到组件后右键属性,在安全标签卡中找到“访问权限”一栏,点击“编辑”

确保SELF拥有本地访问和远程访问的权限。

然后在属性界面中找到标识标签,点击下列用户,输入登陆计算机的用户名和密码即可。

最后右键我的电脑,点击管理,依次进入“服务和应用程序” - “服务”界面
找到 Apache Tomcat 服务,右键属性,在登录选项卡中输入登录计算机的用户名和密码即可。

  • 设置Tomcat服务用户的时候一定在系统的服务管理中设置,不要使用Tomcat管理器自带的账户设置,部分系统会导致设置无效。
Last modification:December 2nd, 2022 at 02:45 pm
If you think my article is useful to you, please feel free to appreciate