2012-04-16 35 views
0

私は3つのSQLマップが定義されているsqlMapConfig.xmlを持っています。iBatis - sqlMapConfig.xmlで定義されているSQLマップを見つけることができないのはなぜですか?

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE sqlMapConfig 
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 

    <sqlMapConfig> 
    <!-- Statement namespaces are required for Ibator --> 
    <settings enhancementEnabled="true" useStatementNamespaces="true"/> 

    <!-- Setup the transaction manager and data source that are 
     appropriate for your environment 
    --> 
    <transactionManager type="JDBC"> 
     <dataSource type="SIMPLE" > 
      <property name="JDBC.Driver" 
       value="com.mysql.jdbc.Driver"/> 
      <property name="JDBC.ConnectionURL" 
       value="jdbc:mysql://localhost:3306/sug"/> 
      <property name="JDBC.Username" 
       value="root"/> 
      <property name="JDBC.Password" 
       value="admin"/> 
     </dataSource> 
    </transactionManager> 

    <!-- SQL Map XML files should be listed here --> 
    <sqlMap resource="com/tatakelabs/dbmaps/categories_SqlMap.xml" /> 
    <sqlMap resource="com/tatakelabs/dbmaps/pro_SqlMap.xml" /> 
    <sqlMap resource="com/tatakelabs/dbmaps/pro_category_SqlMap.xml" /> 

    </sqlMapConfig> 

私はランタイムエラーを取得 - 原因:java.io.IOExceptionのを:リソースCOM/tatakelabs/dbmaps/categories_SqlMap.xml

categories_SqlMap.xmlを見つけることができませんでしたが、その場所に存在しています。私はマップXMLの場所を変更しようとしましたが、それは役に立たなかった。 sqlMapConfig.xmlはDTDに対して検証します。 categories_SqlMap.xmlは正しいDTDに対しても妥当性を確認します。私はなぜそれがリソースを見つけることができないのか理解しようとしている私の知恵の終わりです。 sqlMapファイルは、iBatorによって生成されます。

答えて

1

これは、sqlmapファイルの場所がターゲットにコピーされていないために発生していました。コピー目標を追加し、それを修正しました。

0

私は同じ問題を抱えていました。問題は設定ファイルの場所にあるようです。したがって、プロジェクトのリソース構造の関係。

マッパークラスと同じパッケージ内のconfigファイルを移動していました。この場合に属性がこのパッケージには、すべてのリソースを移動しようとすると、リソースを更新:

<sqlMap resource="categories_SqlMap.xml" /> 
<sqlMap resource="pro_SqlMap.xml" /> 
<sqlMap resource="pro_category_SqlMap.xml" /> 
0

入れて...ソースパッケージディレクトリの下のsrc \ Javaの\のabc.xml。

+1

これはコメントです –

0

解決しました。

私はPOJOが置かれた場所にXMLファイルを移動し、次のようにパスを提供:

<sqlMap resource="com/heena/ibatis/model/jsr/jsr.xml" /> 

そしてそれは働きました。

0

Springを使用している場合、プロパティ "mappingLocations"を指定してSqlMapClientFactoryBeanを使用できます。このプロパティでは、 "com/tatakelabs/dbmaps/* _ SqlMap.xml"などの汎用パス、またはファイル名の配列としてSpringによって解決される$ {mapfiles}などの変数を指定できます。これにより、sqlMapConfigのsqlMap要素を省略できます。この手法は、iBatis 2.3.4で実行されます。しかし、sql-map-config-2.dtdもiBatis.jarの中に含まれているため、/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtdのように解析エラーが発生する可能性があります。バグがあります。この場合、jar内のURLをURLの http://ibatis.apache.org/dtd/sql-map-config-2.dtdに置き換えることができます。

関連する問題