dao里:
public class AffordDAOImpl implements AffordDAO { private static SqlMapClient sqlMapClient = null;
static { try {
Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader("ibatis/sql-map-config.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder
.buildSqlMapClient(reader);
} catch (IOException e) { e.printStackTrace();
}
} @Override
public List<Afford> getAllAfford() { List list = null; try {
list = sqlMapClient.queryForList("getAllAfford");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
service里:
public static AffordDAO aff=new AffordDAOImpl();
public List<Afford> getAll(){
List<Afford> list=null;
list=aff.getAllAfford();
return list;
}service层测试:
public static AffordService aff = new AffordService(); public static void main(String[] args) { List list = null; list = aff.getAll();
for(Afford afford:aff.getAll()){
System.out.println(afford.getAddress()+"=="+afford.getEnterArea());
}action里:public static AffordService aff = new AffordService(); @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
List list=null;
System.out.println("-------------------------");
list=aff.getAll();
System.out.println("===========================");
HttpSession session=request.getSession();
session.setAttribute("list","list");
return mapping.findForward("success");
}
问题是:明明测试已经通过了,但页面调用action的时候 却报错 如下:
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: com.ibatis.common.resources.Resources
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.isoftstone.dao.impl.AffordDAOImpl.<clinit>(AffordDAOImpl.java:19)
at com.isoftstone.service.AffordService.<clinit>(AffordService.java:11)
at com.isoftstone.web.action.AffordAction.<clinit>(AffordAction.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
action里用到的东西跟测试中用的完全一样的,测试通过action却报错,各位大牛帮忙解决下
public class AffordDAOImpl implements AffordDAO { private static SqlMapClient sqlMapClient = null;
static { try {
Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader("ibatis/sql-map-config.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder
.buildSqlMapClient(reader);
} catch (IOException e) { e.printStackTrace();
}
} @Override
public List<Afford> getAllAfford() { List list = null; try {
list = sqlMapClient.queryForList("getAllAfford");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
service里:
public static AffordDAO aff=new AffordDAOImpl();
public List<Afford> getAll(){
List<Afford> list=null;
list=aff.getAllAfford();
return list;
}service层测试:
public static AffordService aff = new AffordService(); public static void main(String[] args) { List list = null; list = aff.getAll();
for(Afford afford:aff.getAll()){
System.out.println(afford.getAddress()+"=="+afford.getEnterArea());
}action里:public static AffordService aff = new AffordService(); @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
List list=null;
System.out.println("-------------------------");
list=aff.getAll();
System.out.println("===========================");
HttpSession session=request.getSession();
session.setAttribute("list","list");
return mapping.findForward("success");
}
问题是:明明测试已经通过了,但页面调用action的时候 却报错 如下:
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: com.ibatis.common.resources.Resources
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.isoftstone.dao.impl.AffordDAOImpl.<clinit>(AffordDAOImpl.java:19)
at com.isoftstone.service.AffordService.<clinit>(AffordService.java:11)
at com.isoftstone.web.action.AffordAction.<clinit>(AffordAction.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
action里用到的东西跟测试中用的完全一样的,测试通过action却报错,各位大牛帮忙解决下
.getResourceAsReader("ibatis/sql-map-config.xml");service层测试的时候它照常执行, 页面调用action的时候 报错如下:
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: com.ibatis.common.resources.Resources
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.isoftstone.dao.impl.AffordDAOImpl.<clinit>(AffordDAOImpl.java:21)
at com.isoftstone.service.AffordService.<clinit>(AffordService.java:11)
at com.isoftstone.web.action.AffordAction.<clinit>(AffordAction.java:19)而action里用的东西明明和测试里的一样。 从没遇到过这样的问题,各位大虾帮忙啊。
用相对对路径试下,找找原因还有问题
session.setAttribute("list","list");
你干嘛把一个字符串扔进去..
Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader("/ibatis/sql-map-config.xml");
HttpSession session=request.getSession();
session.setAttribute("list","list");这里我把查出的结果绑定到页面啊 , 在页面中输出
<c:forEach items="list" var="sq" varStatus="index">
原来的路径没问题的
list=aff.getAll(); HttpSession session=request.getSession(); session.setAttribute("list","list");这里错了 第一个list没引号
public static DaoManager newDaoManager(Properties props) {
try {
Reader reader = Resources.getResourceAsReader(resource);
return DaoManagerBuilder.buildDaoManager(reader, props);
} catch (Exception e) {
throw new RuntimeException("Could not initialize DaoConfig. Cause: " + e, e);
}
}
java.lang.ClassNotFoundException: com.ibatis.common.resources.Resources
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.isoftstone.dao.impl.AffordDAOImpl.<clinit>(AffordDAOImpl.java:21)
at com.isoftstone.service.AffordService.<clinit>(AffordService.java:11)
at com.isoftstone.web.action.AffordAction.<clinit>(AffordAction.java:19)
从错误信息看: action --》service -->> dao -->> loader的时候出错了 就是这句:Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader("ibatis/sql-map-config.xml");
最奇怪的是 测试类里 是一样调用的 却能正确执行痛苦中`````
一点思路,lz试试吧~~~