2017-05-09 267 views
0

ibatisの新機能です。私は2つのファイルにSQLMapConfigファイルとSQLマップリソースを分割するのが好きです。しかし、私はプロジェクトを実行するときにエラーを表示するようです。 以下は私の2ファイルSQLマップです。XPath '/ sqlMapConfig/sqlMap'の解析でiBatisエラーが発生する

  1. SQLMapConfig.xml:ここ

    <?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> 
        <settings 
        cacheModelsEnabled="true" 
        enhancementEnabled="true" 
        lazyLoadingEnabled="true" 
        maxRequests="32" 
        maxSessions="10" 
        maxTransactions="5" 
        useStatementNamespaces="false" 
        /> 
    
        <transactionManager type="JDBC" > 
        <dataSource type="DBCP"> 
         <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> 
         <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/sms_converter"/> 
         <property name="JDBC.Username" value="root"/> 
         <property name="JDBC.Password" value=""/> 
        </dataSource> 
        </transactionManager> 
        <sqlMap resource="configuration/db/tbluser.xml" /> 
    </sqlMapConfig> 
    

とは、SQLマップのリソースであるtbluser.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> 
<sqlMap namespace="MUser"> 
    <select id="getUserById" parameterClass = "com.me.bean.MUser" resultClass="com.me.bean.MUser"> 
     SELECT user_id AS sUserId FROM users where user.id = #sUserId# 
    </select> 
</sqlMap> 

が、私はプロジェクト私を実行した後、このエラーが発生しました:

Exception in thread "main" java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource configuration/db/tbluser.xml 
    at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49) 
    at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63) 
    at com.me.dao.DBDao.main(DBDao.java:77) 
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource configuration/db/tbluser.xml 
    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: java.io.IOException: Could not find resource configuration/db/tbluser.xml 
    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: java.io.IOException: Could not find resource configuration/db/tbluser.xml 
    at com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:110) 
    at com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:95) 
    at com.ibatis.common.resources.Resources.getResourceAsReader(Resources.java:161) 
    at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$10.process(SqlMapConfigParser.java:262) 
    at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121) 
    ... 7 more 

誰でもお手伝いできますか?ありがとう。

答えて

0

は、リソース構成/ DB/tbluser.xmlを見つけ、その接頭語のクラスパスを追加しようとしませんでした:

<mapper resource="classpath:configuration/db/tbluster.xml"> 
+0

おかげで、しかし、私は、srcパッケージ内の私のtbluser.xmlを移動することでこれを解決しました。 – Ikhsan

関連する問題