【问题标题】:intermittent strange tomcat issues deploying war file间歇性奇怪的tomcat问题部署war文件
【发布时间】:2013-01-09 00:10:39
【问题描述】:

我已尝试先搜索此问题,但没有找到与此确切问题有关的任何内容。

当我尝试在我们的 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 运行时环境 (build 1.7.0_09-b05) Java HotSpot(TM) 64 位服务器 VM(内部版本 23.5-b02,混合模式)

tomcat 版本:

服务器版本:Apache Tomcat/7.0.29 服务器搭建:2012年7月3日11:31:52 服务器号:7.0.29.0 操作系统名称:Linux 操作系统版本:2.6.18-308.16.1.el5 架构:amd64 JVM版本:1.7.0_09-b05 JVM供应商:甲骨文公司

【问题讨论】:

  • war文件的部署方法是什么?简单复制到 webapps 目录?从远程系统?如果是这样-tomcat 可能会开始部署部分复制的文件并失败。
  • war 文件通过 Tomcat Web 应用程序管理器上传。

标签: java tomcat


【解决方案1】:

通过在关闭 tomcat 的情况下同时部署两个 .war 文件,然后重新启动 tomcat,我能够始终如一地重现此问题。 (我怀疑它是否相关,但每个 .war 文件的 servlet 非常相似,并且还具有 xerces 依赖项)

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

将 'load-on-startup' 元素值更改为 -1 而不是 1。

【讨论】:

    【解决方案2】:

    一个可能的原因是 JAR 文件冲突,即您的类路径上有多个相同的类。您可以使用以下代码确定类的来源:

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

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 2015-05-03
      • 2012-06-05
      • 2017-04-04
      相关资源
      最近更新 更多