把项目部署到服务器后,为了解决路径问题就在tomcat里的service.xml中配置了
<Context docBase="C:\Program\apache-tomcat-8.0.23\webapps\HR" path="" />
然后,直接通过域名不用添加项目名就可以访问应用了,很开心。
可是,某天,部署一些新的功能后,重启tomcat,报错了
错误代码:1120 当前Hsql数据库已被另一线程锁定
原因是因为应用中部署了帆软的报表服务,报错信息提示数据库连接被帆软锁定了。
不应该啊,用了好久了,重启好多次了。网上求助各种方法,
如:
发现tomcat里的一个坑就是如果你在service.xml里配置了
<Context docBase="abcd" path="/" reloadable="true" source="org.eclipse.jst.jee.server:adcd"/> 就会重复加载该项目两遍,然后就会出现我上面那个错误,而解决的办法也很简单就是找到service.xml中的下面这句话,
默认是这样的<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
需要改成这样<Host appBase=" " autoDeploy="true" name="localhost" unpackWARs="true">
然后tomcat启动不报错了,可是JSP文件中引用的js、css等路径都是相对于项目路径的,此时全都失效了,看起来这一个不可调和的矛盾,不科学啊。
折腾一上午,把在tomcat中部署的应用整个删掉了,然后重新发布,启动,成功了!什么错都没报。
这不科学啊!!!!