9 Replies Latest reply on Mar 22, 2011 1:36 AM by vaibhavnaik

    Migration to JBoss5. Failed to create a new SAX parser

    mak_s

      I have a war file which can be deployed fine on JBoss 4.2.3. But when I try to deploy it on JBoss 5.0.1-jdk6 I get following error

      ERROR [org.jboss.web.tomcat.service.deployers.JBossContextConfig] (main) XML error parsing: jboss.web/localhost/context.xml.default
      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:544)
       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)
       at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:312)
       at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:144)
       at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
       at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
       at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
       at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
       at $Proxy36.start(Unknown Source)
       at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
       at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
       at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
       at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
       at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
       at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
       at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
       at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
       at org.jboss.system.ServiceController.start(ServiceController.java:460)
       at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
       at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
       at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
       at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
       at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:698)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
       at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
       at org.jboss.Main.boot(Main.java:209)
       at org.jboss.Main$1.run(Main.java:547)
       at java.lang.Thread.run(Thread.java:619)
      Caused by: org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
       at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:97)
       at org.jboss.xb.binding.UnmarshallerImpl.<init>(UnmarshallerImpl.java:56)
       at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:96)
       ... 62 more
      Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserC
      onfiguration
       at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
       at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
       at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
       at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
       at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
       at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:92)
       ... 64 more
      


      The only solution I found on the web is to remove xerces*.jar and xml-apis*.jar from WEB-INF/lib directory of the war file. But that solution is not suitable for me.
      Is there any other way to fix this issue?
      Any help is appreciated


        • 1. Re: Migration to JBoss5. Failed to create a new SAX parser
          alesj
          • 2. Re: Migration to JBoss5. Failed to create a new SAX parser
            mak_s

             

            "alesj" wrote:
            Isolate your app.
            http://www.thorgull.be/doku.php?id=tutorials:jboss:classloaderisolation


            So I created jboss-web.xml file in the WEB-INF directory of my .war.

            <?xml version="1.0" encoding="UTF-8" ?>
            
            <jboss-web>
             <loader-repository>
             tld.mydomain:loader=ROOT.war
             </loader-repository>
            </jboss-web>


            But now I get another error in my server.log

            ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error installing to Parse: name=vfszip:/opt/jboss-5.0.1.G
            A/server/default/deploy/ROOT.war/ state=Not Installed mode=Manual requiredState=Parse
            org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfszip:/opt/jboss-5.0.1.GA/server/default/deploy/ROOT.war/
             at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
             at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:337)
             at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:297)
             at org.jboss.deployment.JBossWebAppParsingDeployer.createMetaData(JBossWebAppParsingDeployer.java:103)
             at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:269)
             at org.jboss.deployment.JBossWebAppParsingDeployer.createMetaData(JBossWebAppParsingDeployer.java:75)
             at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:230)
             at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
             at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
             at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
             at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
             at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
             at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
             at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
             at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
             at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
             at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
             at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
             at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
             at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:698)
             at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
             at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
             at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
             at org.jboss.Main.boot(Main.java:209)
             at org.jboss.Main$1.run(Main.java:547)
             at java.lang.Thread.run(Thread.java:619)
            Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: loader-repository not found as a child of jboss-web
             at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
             at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
             at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:199)
             at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:170)
             at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:132)
             at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:118)
             at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
             at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:188)
             at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:323)
             ... 24 more
            Caused by: org.jboss.xb.binding.JBossXBRuntimeException: loader-repository not found as a child of jboss-web
             at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:400)
             at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:401)
             at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
             at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
             at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
             at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
             at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
             at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
             at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
             at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
             at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
             at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
             at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:199)
             ... 32 more


            Did I do anything wrong?


            • 3. Re: Migration to JBoss5. Failed to create a new SAX parser
              alesj

              Looks like it changed a bit.
              This is what I found as part of Seam examples.

              <!DOCTYPE jboss-web PUBLIC
               "-//JBoss//DTD Web Application 4.2//EN"
               "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
              
              <jboss-web>
               <class-loading java2ClassLoadingCompliance="false">
               <loader-repository>
               seam.jboss.org:loader=jboss-seam-groovybooking
               <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
               </loader-repository>
               </class-loading>
              </jboss-web>
              


              • 4. Re: Migration to JBoss5. Failed to create a new SAX parser
                mak_s

                 

                "alesj" wrote:
                Looks like it changed a bit.
                This is what I found as part of Seam examples.

                
                <!DOCTYPE jboss-web PUBLIC
                 "-//JBoss//DTD Web Application 4.2//EN"
                 "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
                
                <jboss-web>
                 <class-loading java2ClassLoadingCompliance="false">
                 <loader-repository>
                 seam.jboss.org:loader=jboss-seam-groovybooking
                 <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
                 </loader-repository>
                 </class-loading>
                </jboss-web>
                


                I changed my jboss-web.xml. And now I see error from my first post again.


                • 5. Re: Migration to JBoss5. Failed to create a new SAX parser
                  alesj

                  Experiment with those "false" flags a bit.

                  • 6. Re: Migration to JBoss5. Failed to create a new SAX parser
                    alex_krasov

                    Had exactly same issue here.

                    See http://www.jboss.org/community/wiki/useJBossWebClassLoaderinJBoss5 for a solution.

                    Use something like


                    <classloading xmlns="urn:jboss:classloading:1.0"
                     name="MyWar.war"
                     domain="MyWar_Domain"
                     export-all="NON_EMPTY"
                     import-all="false">
                    </classloading>
                    


                    Cheers.

                    • 7. Re: Migration to JBoss5. Failed to create a new SAX parser
                      mak_s

                      Thank you Alex! It works for me.

                      • 8. Migration to JBoss5. Failed to create a new SAX parser
                        vaibhavnaik

                        Hey Maxim,

                        Can u plz post the actual file name and contents for same,

                        because im trying same by creating file name as "jboss-classloading.xml" with above content but same is not working for me

                        • 9. Re: Migration to JBoss5. Failed to create a new SAX parser
                          vaibhavnaik

                          Yes, I have done it, but this solution is working for JBoss-eap.5.1 not sure for JBoss 5.1 GA

                           

                          Filename :: jboss-classloading.xml under "WEB-INF" directory.

                          Contents are ::

                          <classloading xmlns="urn:jboss:classloading:1.0"

                          name="MyWAR.war" 

                          domain="localhost"

                          export-all="NON_EMPTY"

                          import-all="true">

                          </classloading>