问答详情
源自:-

为什么读取不到configuration.xml

老师想问一下,我用main函数测试DBAccess类时没问题,但是发布之后总是读取不到文件这是DBAccess类

package com.lichunting.db;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


/**
 * 访问数据库
 * @author LiChunting
 *
 */
public class DBAccess {
	public  SqlSession getSqlSession() throws IOException{
		//通过配置文件获取数据库连接信息
		Reader reader = Resources.getResourceAsReader("com/lichunting/config/Configuration.xml");
		//通过配置信息构建一个SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		//通过sqlSessionFactory打开一个数据库会话
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}
	
	
}

这是错误

Servlet.service() for servlet [ListServlet] in context with path [/WeChat] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
	at com.lichunting.db.DBAccess.getSqlSession(DBAccess.java:20)
	at com.lichunting.dao.MessageDao.queryMessageList(MessageDao.java:31)
	at com.lichunting.service.ListService.queryMessageList(ListService.java:12)
	at com.lichunting.servlet.ListServlet.doGet(ListServlet.java:33)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)


提问者:IT_TI 2015-01-07 14:23

个回答

  • 源生活
    2015-01-08 20:03:40
    已采纳

    java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources

    这不是读不到配置文件,mybatis的jar包你没加到工程中,或是虽然已经加入到工程中,但在某些开发环境下启动工程需要手动引用你没有引用。

  • 木子玉0
    2016-08-22 21:10:30

    怎么解决的 我的也是这个问题