用Jacob把excel转成pdf在tomcat的dos环境能运行,做成windows服务会报错
当前做的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运行的效果一致。
请问各位有没有遇见这样的问题,或者提供一些解决方法。小弟在此谢过各路大神!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
openoffice excel 2 pdf
解压版的tomcat大家都知道在bin目录下有个service.bat文件,安装服务就通过这个bat来实现,这里有设置服务的安装、卸载、启动方式等等,我对bat脚本也不熟,怎么在这个bat里设置好登录身份呢?
多谢建议,我先了解下Aspose是什么
答案是:没办法。
1、Jacob通过com方式调用excel,其实是起了一个excel进程,这个进程是有一个隐藏的excel界面的。windows服务状态下通常是不能有交互界面的。
所以,你可以试试不按服务的方式启动。
2、你也可以试试Aspose组件,纯java,比jacob好用,也不需要excel环境。
--------------------------------
看来我搞错了,还是权限问题。
用代码创建windows服务可以设置一些选项。tomcat自带的就不清楚了。
路过的帮忙顶顶都行啊
解决就好。
回复
为什么我的不行呢?
这个问题我尝试了下,做成服务后,在services.msc打开服务,找到我安装的tomcat的服务后,设置属性-->登录的登录身份没使用“本地系统帐户”,而是在此帐户中找到自己登系统的用户名,再输入密码,应用重启后,转换正常了。
现在想这是什么原因造成的,猜测是权限,但是如何在注册服务时就设置好权限,而不需要用户在服务里来再选用户名和输密码呢?