初学ibatis 问题多多,写了个测试类
package com.peak.riskscan.punishment.model;
import java.sql.*;
import java.io.Reader;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;/**
 * @author 小林信仁
 * @version 2007/4/23
 */
public class TestIbatis {
 //首先初始化一个Ibatis获取一个SqlMapConfig.xml对象
  public static SqlMapClient sqlMap = null; 
  TestIbatis(){
  
  String resource = "conf/sqlmap/sqlmap-config-second.xml";
  try {
   Reader reader = Resources.getResourceAsReader(resource);
   sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   System.err.print("无价实例化SqlMapConfig对象");
  }
  
 }
  /**
 public  void updateUser(String name,String password,int id){
  User user = new User();
  user.setId(id);
  user.setName(name);
  user.setPassword(password);
  try {
   sqlMap.startTransaction();
   sqlMap.update("updateUser", user);
   sqlMap.commitTransaction();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   System.err.println("修改错误");
  }finally{
   try {
    sqlMap.endTransaction();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
 
 */
  
 public static List getAllUser(){
  List list = null;
  try {
   sqlMap.startTransaction();
   list = sqlMap.queryForList("getPunishmentByModel",null);
   sqlMap.commitTransaction();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   try {
    sqlMap.endTransaction();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return list;
 }
 /*
 public  boolean insertUser(String name,String password,String email){
  boolean bool = false;  
  User user = new User();
  user.setName(name);
  user.setEmail(email);
  user.setPassword(password);
  try {
   sqlMap.startTransaction();
   sqlMap.insert("insertUser",user);
   bool = true;
   sqlMap.commitTransaction();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   try {
    sqlMap.endTransaction();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return bool;
  
 }
 */
 public static void main(String[] args) {
  
  TestIbatis testIbatis = new TestIbatis();
  //testIbatis.updateUser("易思网", "sydica", 2);
  List list = TestIbatis.getAllUser();
  Iterator iterator = list.iterator();
  while(iterator.hasNext()){
   PunishmentModel  pm = (PunishmentModel)iterator.next();
   System.out.print("modelName=" + pm.getModelName() + " ");
   System.out.print("modelDescribe=" +pm.getModelDescribe() + " ");
   System.out.print("re=" + pm.getRe()+ " ");
   System.out.println("typeid=" + pm.getTypeId()+ " ");
   
  }
 }
 
}a出异常:
无价实例化SqlMapConfig对象Exception in thread "main" java.lang.NullPointerException
at com.peak.riskscan.punishment.model.TestIbatis.getAllUser(TestIbatis.java:68)
at com.peak.riskscan.punishment.model.TestIbatis.main(TestIbatis.java:107)
是怎么回事,请高手指点