package com.roya.mcc.dao.common;import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Properties;import org.apache.log4j.Logger;import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.DaoManagerBuilder;/**
 * 数据库操作工具类
 * 
 * @author chenjun
 * @since 2007.1.25
 */public class DaoConfig {
// dao配置文件
private static final String resource;
private static Logger logger = Logger.getLogger(DaoConfig.class);
// dao管理工具
private static final DaoManager daoManager;
// 初试化dao管理工具
static {
try {
// 获取配置文件
resource = IbatisConfigerListener.getDbResource();
// 初试化数据库管理类
daoManager = newDaoManager(null);
} catch (Exception e) {
throw new RuntimeException("Description.  Cause: " + e, e);
}
} /**
 * 获得数据库管理类(单例模式)
 * 
 * @return daoManager 数据库操作管理类实例
 */
public static DaoManager getDaoManager() {
return daoManager;
} /**
 * 创建数据库操作管理类实例
 * 
 * @param props
 *            数据库连接参数
 * @return 数据库操作管理类实例
 */
public static DaoManager newDaoManager(Properties props) {
try {
Reader reader = null;
try{
reader = Resources.getResourceAsReader(resource);
}catch (IOException ioe){
logger.error(ioe);
}
if (reader == null) {
reader = new FileReader(new File(resource));
}
return DaoManagerBuilder.buildDaoManager(reader, props);
} catch (Exception e) {
logger.error(e);
throw new RuntimeException("Could not initialize DaoConfig.  Cause: " + e, e);
}
}
}老是报错不知道为什么?
java.lang.NullPointerException
at com.roya.mcc.forbidden.interfaceAndCarrey.ForbiddenCarray.<init>(ForbiddenCarray.java:67)
at com.roya.mcc.forbidden.interfaceAndCarrey.ForbiddenCarray.getInstance(ForbiddenCarray.java:55)
at com.roya.mcc.forbidden.interfaceAndCarrey.ForbiddenCarrayFactory.creator(ForbiddenCarrayFactory.java:23)
at com.roya.mcc.dao.daoforbidden.ibatis.sqlserver.DAOImpl.<init>(DAOImpl.java:26)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.parseDao(XmlDaoManagerBuilder.java:223)
at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.parseContext(XmlDaoManagerBuilder.java:160)
at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.buildDaoManager(XmlDaoManagerBuilder.java:102)
at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.buildDaoManager(XmlDaoManagerBuilder.java:79)
at com.ibatis.dao.client.DaoManagerBuilder.buildDaoManager(DaoManagerBuilder.java:49)
at com.roya.mcc.dao.common.DaoConfig.newDaoManager(DaoConfig.java:67)
at com.roya.mcc.dao.common.DaoConfig.<clinit>(DaoConfig.java:34)
at com.roya.mcc.service.servescope.ServeScopeMapService.<init>(ServeScopeMapService.java:29)
at com.roya.mcc.service.servescope.ServeScopeMapServiceTest.<init>(ServeScopeMapServiceTest.java:15)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at junit.framework.TestSuite.createTest(TestSuite.java:135)
at junit.framework.TestSuite.addTestMethod(TestSuite.java:114)
at junit.framework.TestSuite.<init>(TestSuite.java:75)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:102)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:59)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

解决方案 »

  1.   

    我测试的可以通过的,sql语句都可以正常运行.但我不明白它为什么老是报这样的错而已每的测试类都报这样的错误,这个问题已经困惑我一天了,希望高手过来帮帮我.
      

  2.   

    空指针异常,debug一下吧,看着些看不出来
      

  3.   

    1。
    //   初试化数据库管理类 
    daoManager   =   newDaoManager(null); 
    为什么传null进去?
    2。
    ForbiddenCarray. <init> (ForbiddenCarray.java:67)
    从 ForbiddenCarray.java的67行开始找,这样比较快