An exception was recently found using the IBatis framework
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/delete'. Cause: java.util.NoSuchElementException at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:62) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:44) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$10.process(SqlMapConfigParser.java:257) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121) ... 98 more Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/delete'. Cause: java.util.NoSuchElementException at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60) ... 101 more Caused by: java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:332) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.parseInlineParameterMap(InlineParameterMapParser.java:55) at com.ibatis.sqlmap.engine.builder.xml.XMLSqlSource.parseDynamicTags(XMLSqlSource.java:62) at com.ibatis.sqlmap.engine.builder.xml.XMLSqlSource.getSql(XMLSqlSource.java:33) at com.ibatis.sqlmap.engine.config.MappedStatementConfig.<init>(MappedStatementConfig.java:79) at com.ibatis.sqlmap.engine.config.SqlMapConfiguration.newMappedStatementConfig(SqlMapConfiguration.java:159) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralStatement(SqlStatementParser.java:73) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$20.process(SqlMapParser.java:357) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
Of course it can also be this exception
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/insert'. Cause: java.util.NoSuchElementException at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60) ... 101 more
or this exception
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: java.util.NoSuchElementException at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60) ... 101 more
Most of the reason is that the # character in the delete, select or insert statement of the xml in your sqlmap does not appear in pairs, causing this exception, which is caused by an sql syntax error