Hi,
I have successfully used iBatis in the past but with a current project I am encountering a strange error. It seems that the parser dies on parsing the sql-map-config.xml file. I am using jdk 1.5, eclipse 3.1 and iBatis build 2.1.5. Here is my config file and a stack trace of the error. Any help would be greatly appreciated. Thanks.
sql-map-config.xml
org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'sqlMapClient' defined in class path resource [com/tabarca/domain/ibatis/testApplicationContext.xml]: Initialization of bean failed; nested exception is com.ibatis.common.exception.NestedRuntimeException : Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null".Code:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <sqlMap resource="com/tabarca/dao/ibatis/maps/User.xml"/> </sqlMapConfig>
com.ibatis.common.exception.NestedRuntimeException : Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.exception.NestedRuntimeException : Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null". Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "null".
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigP arser.parse(SqlMapConfigParser.java:81)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.build SqlMapClient(SqlMapClientBuilder.java:62)
at org.springframework.orm.ibatis.SqlMapClientFactory Bean.afterPropertiesSet(SqlMapClientFactoryBean.ja va:258)
at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.invokeInitMethods(Abstr actAutowireCapableBeanFactory.java:1058)
at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:363)
at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:147)
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.preInstantiateSingletons(Defaul tListableBeanFactory.java:269)
at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:318)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationCon text.java:81)
at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationCon text.java:66)
at org.springframework.test.AbstractSpringContextTest s.loadContextLocations(AbstractSpringContextTests. java:121)
at org.springframework.test.AbstractDependencyInjecti onSpringContextTests.loadContextLocations(Abstract DependencyInjectionSpringContextTests.java:161)
at org.springframework.test.AbstractSpringContextTest s.getContext(AbstractSpringContextTests.java:101)
at org.springframework.test.AbstractDependencyInjecti onSpringContextTests.setUp(AbstractDependencyInjec tionSpringContextTests.java:129)
at junit.framework.TestCase.runBare(TestCase.java:125 )
at junit.framework.TestResult$1.protect(TestResult.ja va:106)
at junit.framework.TestResult.runProtected(TestResult .java:124)
at junit.framework.TestResult.run(TestResult.java:109 )
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:2 08)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.main(RemoteTestRunner.java:196)


Reply With Quote