JBoss 由于错误"Failed to create a new SAX parser"无法部署应用程序



我不得不承认,我不熟悉jboss,但我有一项任务要启动在它上面运行的应用程序。该应用程序在重新启动之前正在运行,但在重新启动之后无法启动。尝试运行时引发以下异常:

12:40:08,680 INFO  [TomcatDeployment] deploy, ctxPath=/
12:40:08,777 INFO  [TomcatDeployment] deploy, ctxPath=/geoserver
12:40:08,971 ERROR [JBossContextConfig] XML error parsing: context.xml
org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX    parser
at    org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
at  org.jboss.web.tomcat.service.deployers.JBossContextConfig.processContextConfig(JBossContextConfig.java:557)
at org.jboss.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:543)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)

这个问题有什么典型的原因吗?

当您将XML解析器jar(例如xerces或SAXParser)打包到部署工件(即WAR、EAR)文件中时,通常会引发此错误。JBoss提供了自己的XML解析库,这些库作为父类加载器的一部分可供应用程序使用。您可能还需要根据JBoss运行时库重新编译应用程序。一个好的经验法则是不要复制JEE容器已经提供的jar。您可以通过实现类加载隔离来解决这个问题,但是,我认为最好首先删除JEE容器提供的jar。

最新更新