网上说是sqlmapconfig.xml配错了,我看了半天还是报错。还有common-loggin没导入,我导了还是报错。这些文件都放在src中,
导入包mybatis-3.1.1.jar
ibatis-common-1.3.1.jar
ibatis-dao-1.3.1.jar
ibatis-sqlmap-2.3.0.jar
ojdbc14.jar
报如下异常:Exception in thread "main" java.lang.ExceptionInInitializerError
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.<init>(SqlMapConfigParser.java:58)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.<init>(SqlMapConfigParser.java:45)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
at test.main(test.java:29)
Caused by: java.lang.RuntimeException: Error creating logger for class class com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.  Cause: java.lang.NullPointerException
at com.ibatis.common.logging.LogFactory.getLog(LogFactory.java:33)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.<clinit>(SqlMapClientImpl.java:40)
... 4 more
Caused by: java.lang.NullPointerException
at com.ibatis.common.logging.LogFactory.getLog(LogFactory.java:31)
... 5 more
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" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />

<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="$" />
<property name="JDBC.ConnectionURL" value="$" />
<property name="JDBC.Username" value="$" />
<property name="JDBC.Password" value="$" />
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="180000" />
<property name="Pool.TimeToWait" value="10000" />
<property name="Pool.PingQuery" value="select 1 from dual" />
<property name="Pool.PingEnabled" value="true" />
<property name="Pool.PingConnectionsOlderThan" value="0" />
<property name="Pool.PingConnectionsNotUsedFor" value="3600000" />
<property name="Pool.QuietMode" value="true" />
</dataSource>
</transactionManager> <sqlMap resource="test.xml" /></sqlMapConfig>test.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="test"> <typeAlias alias="fromSys" type="FromSys" /> <resultMap id="get-fromSys-result" class="fromSys">
<result property="sysId" column="sys_id" />
<result property="name" column="name" />
</resultMap>

<select id="getFromSys" parameterClass="String"
resultMap="get-fromSys-result">
select * from from_sys WHERE name=#value#
</select>

</sqlMap>SqlMapConfig.propertiesdriver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.77.176:1521:ruankousername=ruankoopen
password=ruankoopenFromSys.javaimport java.io.Serializable;
public class FromSys implements Serializable{ private static final long serialVersionUID = 1L;
private Long sysId;
private String name;
public Long getSysId() {
return sysId;
}
public void setSysId(Long sysId) {
this.sysId = sysId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}public static void main(String args[]) throws Exception {// FromSys student = getFromSys(); String resource = "SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
}

解决方案 »

  1.   

    请问下你的SqlMapConfig.properties是怎么加载的?还有你的
    <dataSource type="SIMPLE">
                <property name="JDBC.Driver" value="$" />
                <property name="JDBC.ConnectionURL" value="$" />
                <property name="JDBC.Username" value="$" />
                <property name="JDBC.Password" value="$" />怎么数据源都是value="$"用下面的配置试试
    --------------------------------<?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>
        <properties resource="SqlMapConfig.properties" />
        <settings cacheModelsEnabled="true" enhancementEnabled="true"
            lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
            maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
            
        <transactionManager type="JDBC">
            <dataSource type="SIMPLE">
    <!-- 下面的value="$"类推 -->
                <property name="JDBC.Driver" value="${driver}" />
                <property name="JDBC.ConnectionURL" value="$" />
                <property name="JDBC.Username" value="$" />
                <property name="JDBC.Password" value="$" />
                <property name="JDBC.DefaultAutoCommit" value="true" />
                <property name="Pool.MaximumActiveConnections" value="10" />
                <property name="Pool.MaximumIdleConnections" value="5" />
                <property name="Pool.MaximumCheckoutTime" value="180000" />
                <property name="Pool.TimeToWait" value="10000" />
                <property name="Pool.PingQuery" value="select 1 from dual" />
                <property name="Pool.PingEnabled" value="true" />
                <property name="Pool.PingConnectionsOlderThan" value="0" />
                <property name="Pool.PingConnectionsNotUsedFor" value="3600000" />
                <property name="Pool.QuietMode" value="true" />
            </dataSource>
        </transactionManager>    <sqlMap resource="test.xml" /></sqlMapConfig>
      

  2.   

    导入包
    mybatis-3.1.1.jar
    ibatis-common-1.3.1.jar
    ibatis-dao-1.3.1.jar
    ibatis-sqlmap-2.3.0.jar
    ojdbc14.jar你使用的是mybatis还是ibatis2,这俩个区别很大,mybatis的核心是SqlSessionFactory,而ibatis2是SqlMapClient,看你使用是ibatis2但你的为嘛导入包mybatis-3.1.1.jar
      

  3.   

    楼主写的比较凌乱mybatis是ibatis的升级版,你怎么一起在用了
    初步看了下是缺少包造成的请检查下
    "org.apache.log4j.Logger", "com.ibatis.common.logging.log4j.Log4jImpl"
    是否包括于你的项目中
      

  4.   


    <properties resource="SqlMapConfig.properties" />
    哦,复制的时候删掉了,我测试的时候没用$,直接写上去的。