2011. 9. 2. 18:40 슬기로운생활/Web/Servlet
[Java] Spring+iBatis 연동시 No SqlMapClient specified
뭔가 아주 단순한 실수를 하고 있는 것 같은데, 도무지 모르겠어요.
전자정부프레임워크로 프로젝트를 하고 있는데, 대량의 Text 파일을 라인단위로 파싱해서 DB에 집어넣는 작업을 해야합니다. 기존의 service - DAO로 이어지는 구조하에서는 잘 작동이 되긴 하는데, 화면단에서 500에러가 떨어지더군요. 아마도 트랜잭션 기간때문에 그런듯 합니다. 파일 라인을 줄이면 에러가 안나니까요.
그래서 해당 모듈을 Thread로 구성하려고 했어요. 쓰레드 잘 타고, 파일 잘 읽고, 계산로직 잘 돌아가고..다 잘됩니다. 그런데.. DAO가 SqlMapClient를 못 읽어요. 설정상의 문제는 아닙니다. DAO에서 상위 DAO를 extends하고 Runnable인터페이스를 implement 하는 로직입니다. 누가 좀 알려주세요 제발...-_ㅠ
-- 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 --
public static StatsVO statsVO;
-- 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();
public synchronized void rawDataUpload(StatsVO vo, MultipartHttpServletRequest req, HttpServletResponse res) throws Exception {
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>();
.
.
.
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 --
//--> AbstractDAO 에서는 DB컨넥션 정보 갖고 있구요. 아무튼..쓰레드 추가하기 전엔 잘 돌아갔는데;;
이런 식으로 작업해본 적이 없어서, 아무래도 뭔가 간단한 걸 빼먹거나 간과하고 있는 거 같은데..- _-;;
-- Stat_Sql.xml --
<delete id="DAO.deleteTradeDataMon" parameterClass="java.util.Map">
DELETE FROM STATS
WHERE TRADE_YR = #tradeYr#
AND TRADE_MONTH = #tradeMonth#
WHERE TRADE_YR = #tradeYr#
AND TRADE_MONTH = #tradeMonth#
</delete>
//--> AbstractDAO 에서는 DB컨넥션 정보 갖고 있구요. 아무튼..쓰레드 추가하기 전엔 잘 돌아갔는데;;
이런 식으로 작업해본 적이 없어서, 아무래도 뭔가 간단한 걸 빼먹거나 간과하고 있는 거 같은데..- _-;;
'슬기로운생활 > Web/Servlet' 카테고리의 다른 글
iframe, 다른 도메인간 (0) | 2014.02.14 |
---|---|
Processing of multipart/form-data request failed. (0) | 2013.12.26 |
트위터 사용에 관해 주절주절 떠들어 봅니다. (11) | 2010.04.22 |
Javascript 문자열 컨트롤 (0) | 2009.09.16 |
서버설정을 properties로 만든 거. (0) | 2008.09.19 |