解决Tomcat下无法获取打印机问题

问题情况:

 

最近部署J2EE项目时遇到一个非常头疼的问题:

 

  • 在Eclipse下使用main方法,可以获取打印机
  • Eclipse下通过Tomcat启动项目,可以获取打印机
  • 使用免安装版的Tomcat通过startup.bat启动项目,可以获取打印机
  • 使用安装版的Tomcat通过tomcat6.exe启动项目,可以获取打印机
  • 使用安装版的Tomcat通过tomcat6w.exe或Tomcat6服务启动项目,无法获取打印机,更准确的说,是可以获取本地打印机,无法获取网络上共享的打印机

问题原因:

 

首先,经过多次的尝试,发现了以上的规律,然后去研究tomcat6w.exe和tomcat6.exe以及Tomcat6服务的关系。最终发现,tomcat6w.exe和tomcat6.exe并不仅仅是两种启动方式,tomcat6w.exe不是启动Tomcat的,而是用来配置Tomcat6的服务,实质启动的是Tomcat6服务。继续研究发现,Tomcat6服务默认使用的是本地账号(Local System Account),这个账号的权限是无法访问网络上的硬件设备(Network Services)的。得出这个结论,一切都OK了,只需要给Tomcat6服务更换一个具有能够访问网络服务权限的账号就行了,实践证明,这是正确的。

 

解决步骤:

 

  1. 找到Windows系统中Tomcat6服务(搞Java的都懂,不累赘);
  2. 右键--“属性”--“登录”,修改登录身份,不使用默认的“本地系统账号”,通过“此账号”选择一个具有访问网络服务权限的账号,此处我选择了“Administrator”,应用、确定后,重启Tomcat6服务或者使用tomcat6w.exe启动,发现能正常获取打印机。

 

注:

  1. 本文解决方法适用于Windows系统,Linux系统没有研究,但可能也是账号权限的原因,希望遇到的兄弟能够从本文获取灵感,顺利解决
  2. 本文提及的Tomcat是Tomcat6,实验过Tomcat7也是完全一样的,看网上提到Tomcat5.5貌似也有这种情况,但没有实验,兄弟自己试试吧,有问题咱们交流
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值