使用tomcat部署war包,同一环境有tomcat7和tomcat8两个应用,我这边使用tomcat7,

应用部署在其他目录,通过在启动脚本中设置CATALINA_HOME和CATALINA_BASE参数,来达到单应用多实例方式部署war包。

其中CATALINA_HOME配置tomcat应用路径,CATALINA_BASE配置实例部署路径,

启动后引用后报错,内容类似如下内容:

org.apache.catalina.startup.classloaderfactory validatefile
warning: problem whith directory [/opt/jbshome/webserver/" /opt/jbshome/webserver/Server1/lib"], exists:[false], isDirectory:[false], canRead:[false]

排查无果后联系服务商支持,

由于tomcat7到tomcat8升级后,tomcat自身的一些配置修改,我们的环境中貌似tomcat8会影响tomcat7的部分配置,

所以需要修改实例路径下的 conf/catalina.properties文件内容,

修改其中common.loader的配置信息,为(确保common.loader的值中没有任何引号

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

之前的配置中common.loader=后包含引号,支持同事反馈后面不要加引号,然后问题解决,具体问题原因未知!

后续查看发现,tomcat7下的conf/catalina.properties文件中的common.loader=后不包含引号,

而tomcat8下的conf/catalina.properties文件中的common.loader=后包含引号,

我遇到的问题应该是多实例部署时,配置同事拷贝了tomcat8的配置信息到对应实例目录下,而我使用了tomcat7的应用导致的。

记录下该问题的处理办法!

05-11 22:23