Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

 问题:项目用Jacob组件进行各类文档转pdf,发现当Tomcat用bin启动时转换没有问题,服务用启动时不能调用Jacob组件服务,报错为: java.lang.IllegalArgumentException: Can't pass in null Dispatch object

解决步骤:

1.运行comexp.msc -32

Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

 2.DCOM配置,找到你所安装的Word组件,如果是Offic组件大概就是Microsoft Word~,如果是WPS组件就是WPS Word~(之前以为只有安装Office才行,后来测试发现WPS也可以)

Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

找到组件后右键属性 

Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

然后点击安全,编辑访问权限,我登陆的是个人用户是SEFE,其他用户也可以

 Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

最后点击标识,点击下列用户,输入登陆计算机的用户名和密码,我的是个人用户

Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

3.本以为配置了DCOM的权限应该就可以了,然后测试了下还是不行,于是我看了下Tomcat服务的属性,发现在属性的登录里面有一个用此账号登录的输入框,于是我又试了下用我的账号登录,保存

神奇的事情发生了,居然可以了!现在终于可以用启动Tomcat服务方式的来调用Jacob组件来进行文档的转换了!

Tomcat服务启动用Jacob不能进行文档转换,Jacob调用组件服务失败问题

总结:虽然不知道问题出现在哪儿,但是经过一番尝试终于是解决了一个困扰很久的难题。

参考:https://blog.csdn.net/qq_33265520/article/details/79911381