使用ibatis时,遇到一错误,是手误造成的路径问题。仅作记录,以备参考。
从报错的Cause: java.lang.ClassNotFoundException: com.ibatis.User提示中知道User.xml文件中的<typeAlias alias="User" type="com.ibatis.User" />属性写错了,应该为<typeAlias alias="User" type="com.elifefly.User" />。
报错如下:
- java.lang.ExceptionInInitializerError
- Caused by: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)
- at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
- at com.elifefly.IUserDAOImpl.<clinit>(IUserDAOImpl.java:19)
- Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
- at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:46)
- ... 2 more
- Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- 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:51)
- ... 3 more
- Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
- at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:40)
- at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$10.process(SqlMapConfigParser.java:270)
- at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
- ... 7 more
- Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. Cause: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- 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:51)
- ... 10 more
- Caused by: com.ibatis.sqlmap.client.SqlMapException: Error. Could not initialize class. Cause: java.lang.ClassNotFoundException: com.ibatis.User
- at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.resolveClass(SqlStatementParser.java:89)
- at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralStatement(SqlStatementParser.java:67)
- at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$21.process(SqlMapParser.java:361)
- at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
- ... 14 more
- Caused by: java.lang.ClassNotFoundException: com.ibatis.User
- at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
- at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
- at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
- at java.lang.Class.forName0(Native Method)
- at java.lang.Class.forName(Class.java:169)
- at com.ibatis.common.resources.Resources.classForName(Resources.java:267)
- at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.resolveClass(SqlStatementParser.java:84)
- ... 17 more
- Exception in thread "main"