【问题标题】:migration to JBoss 5.1 - Failed to create a new SAX parser迁移到 JBoss 5.1 - 无法创建新的 SAX 解析器
【发布时间】:2011-01-02 09:56:30
【问题描述】:

我正在尝试将在 JBoss 4.2.3 上正常工作的应用程序(打包在 .war 文件中)部署到 JBoss 5.1(使用 java 5)。

目前在部署期间,我在 server.log 中看到错误:

... 原因: org.jboss.xb.binding.JBossXBRuntimeException: 未能创建新的 SAX 解析器

... 造成的: java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration

根据 JBoss 论坛中的 thread,我需要隔离我的应用程序。 我的问题:

  1. 根据JBoss 5.1 Release Notes - 与现有配置的主要区别在于默认启用按值调用和部署隔离。因此我真的需要隐式设置我的应用程序隔离吗?
  2. 我认为主要是在同一个应用服务器运行多个应用相互冲突的时候需要隔离。就我而言,我试图只运行一个应用程序。那么再次需要隔离吗?
  3. 如果对上述问题的回答是肯定的并且我需要强制隔离 - 我该如何配置它?假设我的战争文件被称为“foo”。我是否必须在 jboss-web.xml 中插入以下部分:
<jboss-web> 
  <loader-repository>
 tld.mydomain:loader=foo.war
 </loader-repository>
</jboss-web>

【问题讨论】:

    标签: jboss migration classloader isolation


    【解决方案1】:

    好的,显然解决方案是从我的 web-inf/lib 中删除 xerces.jar

    由于一些错误,隔离将不起作用。见here

    【讨论】:

      【解决方案2】:

      无法创建新的 sax 解析器错误是由于 WAR 和 EAR 中存在不需要的 JAR 文件(如果存在)。因此,通过删除那些不需要的 JARS,这个错误就被清除了。

      【讨论】:

      • 如何识别哪些 jar 是不需要的>
      • xercesImpl.jar 应该单独做。它与 jBoss 加载的内部版本冲突。
      猜你喜欢
      • 2012-04-17
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2011-11-15
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多