Getting SAXParseException "An element with the identifier xxxx must appear in the document" while parsing hibernate configuration file during deployment in EAP 6
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.2.0
Issue
04:43:43,965 ERROR [net.sf.hibernate.cfg.Configuration] (ServerService Thread Pool -- 81) problem parsing configurationvfs:/content/test.ear/test.jar/test.erp.hibernate.cfg.xml: net.sf.hibernate.MappingException: invalid configuration
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:954) [hibernate2.jar:]
at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:912) [hibernate2.jar:]
at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) [:1.6.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_11]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_11]
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216) [commons-beanutils.jar:1.6]
at org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:585) [commons-digester.jar:"1.6"]
at org.apache.commons.digester.Rule.end(Rule.java:228) [commons-digester.jar:"1.6"]
at org.apache.commons.digester.Digester.endElement(Digester.java:1067) [commons-digester.jar:"1.6"]
at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1436) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1260) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035) [xerces-J_1.4.0.jar:]
at org.apache.commons.digester.Digester.parse(Digester.java:1591) [commons-digester.jar:"1.6"]
at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_11]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_11]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.xml.sax.SAXParseException: An element with the identifier test must appear in the document.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1150) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1712) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1468) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1260) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035) [xerces-J_1.4.0.jar:]
at org.dom4j.io.SAXReader.read(SAXReader.java:339) [dom4j.jar:1.6.1]
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:953) [hibernate2.jar:]
... 37 more
-
User do not see this issue when deploy this in his local instance. User see this in customer instance.
-
User is not sure that he does not see any issue in app other than parsing issue causing hibernate error.
04:43:43,091 ERROR [org.apache.commons.digester.Digester] (ServerService Thread Pool -- 99) Parse Error at line 1115 column 22: An element with the identifier must appear in the document.: org.xml.sax.SAXParseException: An element with the identifier must appear in the document.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1150) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1712) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1468) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1260) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035) [xerces-J_1.4.0.jar:]
at org.apache.commons.digester.Digester.parse(Digester.java:1591) [commons-digester.jar:"1.6"]
at org.apache.struts.tiles.xmlDefinition.XmlParser.parse(XmlParser.java:277) [struts.jar:]
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFile(I18nFactorySet.java:511) [struts.jar:]
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFiles(I18nFactorySet.java:446) [struts.jar:]
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.createDefaultFactory(I18nFactorySet.java:263) [struts.jar:]
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:238) [struts.jar:]
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:188) [struts.jar:]
at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.init(ComponentDefinitionsFactoryWrapper.java:102) [struts.jar:]
at org.apache.struts.tiles.TilesUtilImpl.createDefinitionsFactory(TilesUtilImpl.java:136) [struts.jar:]
at org.apache.struts.tiles.TilesUtil.createDefinitionsFactory(TilesUtil.java:165) [struts.jar:]
at org.apache.struts.tiles.TilesPlugin.initDefinitionsFactory(TilesPlugin.java:222) [struts.jar:]
at org.apache.struts.tiles.TilesPlugin.init(TilesPlugin.java:137) [struts.jar:]
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869) [struts.jar:]
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336) [struts.jar:]
at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_11]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_11]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
- This parsing error seem to be root cause of other errors in the logs.
- The snap shot below is from local windows instance but when run on Linux box we ll get another error for another element.
- Below is error in get in Linux box. seems like arbitrarily any element is getting picked up.
1:55:44,565 ERROR [org.apache.commons.digester.Digester] (ServerService Thread Pool -- 79) Parse Error at line 1303 column 18: An element with the identifier must appear in the document.: org.xml.sax.SAXParseException: An element with the identifier must appear in the document.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1150) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1712) [xerces-J_1.4.0.jar:]
at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1468) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1260) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381) [xerces-J_1.4.0.jar:]
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035) [xerces-J_1.4.0.jar:]
at org.apache.commons.digester.Digester.parse(Digester.java:1572) [commons-digester.jar:"1.6"]
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738) [struts.jar:]
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687) [struts.jar:]
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333) [struts.jar:]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_11]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_11]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_11]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Resolution
- Need to use right redhat version of
xerces.jar(xercesImpl-2.9.1.redhat-5.jar)in thejboss-depoyment-structure.xml.
Root Cause
- By using of old version of
xerces jarwhich is the root causes of the issue.
Diagnostic Steps
- User is migrated to EAP 6.2.0 from EAP 4.2.2. and using hibernate2
- In
hibernate.cfg.xmlfile, there is not a element with liferay . This is in the liferay jars deployed in ear
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
