2013-01-09 86 views
2

我试图先搜索这个问题,但没有发现什么与这个确切的问题。部署war文件的间歇性奇怪的tomcat问题

当我尝试在我们的tomcat服务器上部署war文件时,我有一个间歇性问题。偶尔会出现以下错误,在我们部署之前强制我们登录到bounce tomcat

Jan 08, 2013 11:50:20 AM org.apache.catalina.startup.HostConfig deployWAR SEVERE: Error deploying web application archive /usr/local/apache-tomcat-7.0.29/webapps /somewar.war javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:132)

一旦反弹的tomcat,我们可以部署没有问题war文件。事实上,这种失败是非常随机的,我甚至无法正确地重现这一点。

有没有人对可能发生的事情有任何想法?

Java版本:

Java版本 “1.7.0_09” 的Java(TM)SE运行时环境(建立1.7.0_09-B05) 的HotSpot的Java(TM)64位服务器VM(建23.5-B02 ,混合模式)

Tomcat的版本:

Server版本:的Apache Tomcat/7.0.29 Server内置:2012年7月3日11点31分52秒 服务器数量:7.0.29.0 操作系统名称:Linux操作系统 版本:2.6.18-308.16.1.el5 硬件架构: JVM版本:1.7.0_09-B05 JVM供应商:Oracle公司

+1

部署war文件的方法是什么?简单复制到webapps目录?从远程系统?如果是这样 - 可能有可能tomcat开始部署部分复制的文件并失败。 – Archer

+0

战争文件通过Tomcat Web应用程序管理器上传。 –

回答

0

我能够在同一时间与Tomcat关闭部署2个的.war文件,然后重新启动Tomcat能够始终如一地重现此问题。 (我怀疑它是相关的,但每个.war文件的servlet非常相似,并且也具有xerces依赖性)

通过更改每个.war文件的web.xml文件,问题似乎已得到解决,如下所示:

改变“时加载的启动”元素的值是-1,而不是1

0

一个可能的原因是冲突的JAR文件,即你有你的类路径多个相同类别。您可以使用以下内容确定课程内容来自您的代码:

System.out.println(javax.xml.parsers.SAXParserFactory.class.getResource("SAXParserFactory.class"));