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

    Migration to JBoss5. Failed to create a new SAX parser

    Maxim Sheremet Newbie

      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


        • 2. Re: Migration to JBoss5. Failed to create a new SAX parser
          Maxim Sheremet Newbie

           

          "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
            Ales Justin Master

            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
              Maxim Sheremet Newbie

               

              "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
                Ales Justin Master

                Experiment with those "false" flags a bit.

                • 6. Re: Migration to JBoss5. Failed to create a new SAX parser
                  Alex Krasov Newbie

                  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.

                  • 8. Migration to JBoss5. Failed to create a new SAX parser
                    Vaibhav N Newbie

                    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
                      Vaibhav N Newbie

                      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>