No SqlMapClient Specified..
- 작성자 :
- 노*철
- 작성일 :
- 2011-09-05 09:28:57
- 조회수 :
- 1,904
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
화면단에서의 세션오버로 예측되어지는 오류때문에 Thread를 사용하려 합니다. Thread가 추가되지 않았을 경우에 정상적으로 동작하던 모듈이었습니다. 따라서 설정상의 문제 등은 아닐 것으로 생각하구요. Runnable을 사용할 때 제약사항이 있는건지...해결방법을 부탁드립니다.
-- ServiceImpl.java --
@Resource(name = "SoftMngUploadDAO")
private SoftMngUploadDAO uploadDAO;
public void rawDataUpload(StatsVO statsVO, MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {
uploadDAO.rawDataUpload(statsVO, request, response);
}
-- UploadDAO.java --
@Repository("UploadDAO")
public class UploadDAO extends AbstractDAO implements Runnable {
public static StatsVO statsVO;
public static MultipartHttpServletRequest request;
public static HttpServletResponse response;
@Override
public void run() {
Iterator fileIter = request.getFileNames();
MultipartFile mFile = request.getFile((String)fileIter.next());
fileName = mFile.getOriginalFilename();
year = fileName.substring(3,7);
month = fileName.substring(7,9);
.
.
.
Map<String, String> oMap = new HashMap<String, String>();
oMap.put("tradeYr", year);
oMap.put("tradeMonth", month);
getSqlMapClientTemplate().delete("DAO.deleteTradeDataMon", oMap);
// 요기서 에러!!!
.
.
.
}
public synchronized void rawDataUpload(StatsVO vo, MultipartHttpServletRequest req, HttpServletResponse res) throws Exception {
statsVO = vo;
request = req;
response = res;
Thread th = new Thread(new UploadDAO());
th.start();
}
}
-- Stat_Sql.xml --
<delete id="DAO.deleteTradeDataMon" parameterClass="java.util.Map">
DELETE FROM STATS
WHERE TRADE_YR = #tradeYr#
AND TRADE_MONTH = #tradeMonth#
</delete>
-- ServiceImpl.java --
@Resource(name = "SoftMngUploadDAO")
private SoftMngUploadDAO uploadDAO;
public void rawDataUpload(StatsVO statsVO, MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {
uploadDAO.rawDataUpload(statsVO, request, response);
}
-- UploadDAO.java --
@Repository("UploadDAO")
public class UploadDAO extends AbstractDAO implements Runnable {
public static StatsVO statsVO;
public static MultipartHttpServletRequest request;
public static HttpServletResponse response;
@Override
public void run() {
Iterator fileIter = request.getFileNames();
MultipartFile mFile = request.getFile((String)fileIter.next());
fileName = mFile.getOriginalFilename();
year = fileName.substring(3,7);
month = fileName.substring(7,9);
.
.
.
Map<String, String> oMap = new HashMap<String, String>();
oMap.put("tradeYr", year);
oMap.put("tradeMonth", month);
getSqlMapClientTemplate().delete("DAO.deleteTradeDataMon", oMap);
// 요기서 에러!!!
.
.
.
}
public synchronized void rawDataUpload(StatsVO vo, MultipartHttpServletRequest req, HttpServletResponse res) throws Exception {
statsVO = vo;
request = req;
response = res;
Thread th = new Thread(new UploadDAO());
th.start();
}
}
-- Stat_Sql.xml --
<delete id="DAO.deleteTradeDataMon" parameterClass="java.util.Map">
DELETE FROM STATS
WHERE TRADE_YR = #tradeYr#
AND TRADE_MONTH = #tradeMonth#
</delete>
A
문의하신 내용에 대해 답변드립니다.
우선 정확한 원인 파악을 위해 로그파일을 올려주셨으면 합니다.
쓰레드 방식으로 병렬처리를 하면서 스프링 빈(SqlMapClient) injection 관련 오류가 발생하는 것으로 추측됩니다. 보다 정확한 원인 파악을 위해 로그파일을 올려 주셨으면 합니다.
우선 정확한 원인 파악을 위해 로그파일을 올려주셨으면 합니다.
쓰레드 방식으로 병렬처리를 하면서 스프링 빈(SqlMapClient) injection 관련 오류가 발생하는 것으로 추측됩니다. 보다 정확한 원인 파악을 위해 로그파일을 올려 주셨으면 합니다.