当前做的web项目,需要把excel转成pdf文件,在eclipse环境下编译和启动Tomcat执行,能正常转换。
但是项目发布的话,经理要求把tomcat做成服务,做成服务后,其他功能运行正常,就是这个jacob转换会出现错误:com.jacob.com.ComFailException: Invoke of: SaveAs
Source: Microsoft Excel
Description:
tomcat用的是解压版的,在bin下执行startup.bat运行项目都是正常的,能正常转换。
我在想,从tomcat的服务启动,和dos窗口运行,有什么差异,在jacob这块需要什么样的设置才能使服务处理的效果和startup.bat运行的效果一致。
请问各位有没有遇见这样的问题,或者提供一些解决方法。小弟在此谢过各路大神!
这个问题我尝试了下,做成服务后,在services.msc打开服务,找到我安装的tomcat的服务后,设置属性-->登录的登录身份没使用“本地系统帐户”,而是在此帐户中找到自己登系统的用户名,再输入密码,应用重启后,转换正常了。
现在想这是什么原因造成的,猜测是权限,但是如何在注册服务时就设置好权限,而不需要用户在服务里来再选用户名和输密码呢?
回复 @kimmking:为什么我的不行呢?解决就好。路过的帮忙顶顶都行啊答案是:没办法。
1、Jacob通过com方式调用excel,其实是起了一个excel进程,这个进程是有一个隐藏的excel界面的。windows服务状态下通常是不能有交互界面的。
所以,你可以试试不按服务的方式启动。
2、你也可以试试Aspose组件,纯java,比jacob好用,也不需要excel环境。
--------------------------------
看来我搞错了,还是权限问题。
用代码创建windows服务可以设置一些选项。tomcat自带的就不清楚了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。