Tomcat以应用形式启动时,Jacob调用没问题,当以服务的形式,或以形如Jenkins调用批处理执行call startup.bat使Tomcat跑在后台时,再或者用Tomcat的manager进行热部署时,Jacob调用组件服务出现问题。

直接点击startup.bat启动Tomcat

Tomcat在后台运行

解决方案:

1、首先确保使用的jar包与Jacob.dll的版本对应,既然以应用的形式运行没问题,说明版本没有问题;

2、要将jacob.dll放入jdk目录下的/jre/bin里面,这一步必做;

3、组件服务中要配置用户和权限,例如使用Jacob调用word,就在组件中找到Microsoft Word 97 - 2003 文档,WPS可能是Microsoft Word 06 - 07 文档,右击属性,把权限都勾上,再到标识面板,配置成下列用户,输入用户名密码。(刚开始搞了好久,按网上说的配成交互式用户,结果只有远程到服务器的时候才生效,远程退出就会调用失败。网上还有说64位系统要在C:\Windows\SysWOW64\config\systemprofile目录下新建Desktop文件夹,或者在Tomcat的bin目录下放jacob.dll、在lib下放jacob.jar,亲测无效)




 Office 2010的word组件服务

WPS的word组件服务




参考:

https://support.microsoft.com/zh-cn/help/257757/considerations-for-server-side-automation-of-office

https://blog.csdn.net/tan_jianhui/article/details/869858


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐