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