applicationContext.xml(文件在classes文件夹的根目录下,和com包同级) <bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="classpath:/com/edmond/hrms/common/sqlmap/sqlmap-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
sqlmap-config.xml <sqlMap resource="com/edmond/hrms/common/sqlmap/sqlmap-role.xml" />
sqlmap-role.xml <!-- 获得全查询列表 -->
<select id="getAllRoles" resultMap="roleResultMap">
<![CDATA[select role_id, role_name, role_describe from Tab_Roles]]>
</select>
DAO的代码public class RoleDAO extends SqlMapClientDaoSupport implements IDAO {
public PaginationDTO getList(QueryRoleInDTO inDTO) {
List resultList = getSqlMapClientTemplate().queryForList("getAllRoles",
inDTO);
PaginationDTO outDTO = new PaginationDTO(resultList, inDTO
.getPageSize(), inDTO.getPageNumber());
return outDTO;
}
}如果用以下方法调用,就没有问题
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
RoleDAO roleDAO = (RoleDAO) context.getBean("roleDAO");
......
result = roleDAO.getList(inDTO);但是在Controller中调用的话,就出现异常了
QueryRoleInDTO inDTO = new QueryRoleInDTO();
......
RoleDAO roleDao = new RoleDAO();
PaginationDTO outDTO = roleDao.getList(inDTO);异常信息
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No SqlMapClient specified
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:473)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.IllegalArgumentException: No SqlMapClient specified
org.springframework.util.Assert.notNull(Assert.java:112)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:163)
org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266)
com.edmond.hrms.system.dao.RoleDAO.getList(RoleDAO.java:14)
com.edmond.hrms.system.controller.RolesListController.handleRequestInternal(RolesListController.java:24)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:461)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.