开发者社区> 问答> 正文

用Jacob把excel转成pdf在tomcat的dos环境能运行,做成wind?报错

当前做的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运行的效果一致。

请问各位有没有遇见这样的问题,或者提供一些解决方法。小弟在此谢过各路大神!

展开
收起
爱吃鱼的程序员 2020-06-14 22:16:17 829 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这个问题我尝试了下,做成服务后,在services.msc打开服务,找到我安装的tomcat的服务后,设置属性-->登录的登录身份没使用“本地系统帐户”,而是在此帐户中找到自己登系统的用户名,再输入密码,应用重启后,转换正常了。

    现在想这是什么原因造成的,猜测是权限,但是如何在注册服务时就设置好权限,而不需要用户在服务里来再选用户名和输密码呢?

    回复 @kimmking:为什么我的不行呢?解决就好。路过的帮忙顶顶都行啊

    答案是:没办法。

    1、Jacob通过com方式调用excel,其实是起了一个excel进程,这个进程是有一个隐藏的excel界面的。windows服务状态下通常是不能有交互界面的。

    所以,你可以试试不按服务的方式启动。

    2、你也可以试试Aspose组件,纯java,比jacob好用,也不需要excel环境。

    --------------------------------

    看来我搞错了,还是权限问题。
    用代码创建windows服务可以设置一些选项。tomcat自带的就不清楚了。

     

    多谢建议,我先了解下Aspose是什么解压版的tomcat大家都知道在bin目录下有个service.bat文件,安装服务就通过这个bat来实现,这里有设置服务的安装、卸载、启动方式等等,我对bat脚本也不熟,怎么在这个bat里设置好登录身份呢?openofficeexcel2pdf
    2020-06-14 22:16:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云网络:数字经济的连接(全彩) 立即下载
企业数字化基石——阿里巴巴云计算基础设施实践-试读 立即下载
对象存储实战指南-试读 立即下载