SqlMapClientTemplate 에서 getExceptionTranslator().translate() 메소드가 null 를 리턴합니다.
- 작성자 :
- 허*원
- 작성일 :
- 2024-07-04 17:23:08
- 조회수 :
- 352
- 구분 :
- 개발환경 / 4.2
- 진행상태 :
- 완료
Q
기존 Oracle 버전으로 돌던 프로젝트를 MS SQL로 포팅하고 있습니다.
서버 실행 잘 되고, 화면도 잘 나옵니다.
문제는, 이제 DB가 다르니 SQL문 오류가 나야 하지 않습니까.
오라클 붙었을 때 SQL 예외가 발생하지 않습니까.
그러면 예외 객체의 클래스 타입은 바뀌어도, 어쨌든 예외 메시지는 제대로 예외 핸들러로 넘어 옵니다.
문제는 MS SQL Server 로 붙었을 때는 예외 메시지는 나오지 않고 NullPointerException 이 추가로 발생을 합니다.
이 예외가 어디서 잡혀서 바뀌는지 디버깅 포인트 여기저기 잡아보니까
SqlMapClientTemplate 클래스에서 catch 를 해서
throw getExceptionTranslator().translate("SqlMapClient operation", null, ex);
이걸 하더라구요.
근데 저
getExceptionTranslator().translate("SqlMapClient operation", null, ex)
값 결과가 null 이에요.
null을 throw 하고 있는거죠.
context-datasource.xml 일부와 디버그 모드 스크린샷을 떴습니다.
어느 부분 수정이 필요한지, 아니면 흰트라도 주실 수 있나요?
서버 실행 잘 되고, 화면도 잘 나옵니다.
문제는, 이제 DB가 다르니 SQL문 오류가 나야 하지 않습니까.
오라클 붙었을 때 SQL 예외가 발생하지 않습니까.
그러면 예외 객체의 클래스 타입은 바뀌어도, 어쨌든 예외 메시지는 제대로 예외 핸들러로 넘어 옵니다.
문제는 MS SQL Server 로 붙었을 때는 예외 메시지는 나오지 않고 NullPointerException 이 추가로 발생을 합니다.
이 예외가 어디서 잡혀서 바뀌는지 디버깅 포인트 여기저기 잡아보니까
SqlMapClientTemplate 클래스에서 catch 를 해서
throw getExceptionTranslator().translate("SqlMapClient operation", null, ex);
이걸 하더라구요.
근데 저
getExceptionTranslator().translate("SqlMapClient operation", null, ex)
값 결과가 null 이에요.
null을 throw 하고 있는거죠.
context-datasource.xml 일부와 디버그 모드 스크린샷을 떴습니다.
어느 부분 수정이 필요한지, 아니면 흰트라도 주실 수 있나요?
환경정보
-
- OS 정보 : Windows 11
- 표준프레임워크 버전 : 4.2
- JDK(JRE) 정보 : 8
- WAS 정보 : Tomcat 9.0.90
- DB 정보 : MS SQL Server 2022 / Oracle Database 19c Standard
- 기타 환경 정보 : iBatis 사용
A
안녕하세요
표준프레임워크센터입니다
어떤 프로젝트를 기반으로 작업을 하시는지 알수 없으나
공통컴포넌트를 기반으로 한다면
다음 설정파일에서
/src/main/resources/egovframework/egovProps/globals.properties
다음과 같이 DB서버 타입을 지정합니다.
Globals.DbType = oracle
다만, 이때 mssql은 지원하지 않아 별도 커스텀 작업이 필수 입니다.
다음 빈 설정파일에 대해 확인해 보시기 바랍니다.
/src/main/resources/egovframework/spring/com/context-datasource.xml
/src/main/resources/egovframework/spring/com/context-mapper.xml
다음 디렉토리 하위에 맵퍼 파일들을
MSSQL 쿼리문에 적합하게 생성한후에
지정된 네이밍 규칙대로 생성하는것도 확인이 필요합니다.
/src/main/resources/egovframework/mapper/com
감사합니다.
표준프레임워크센터입니다
어떤 프로젝트를 기반으로 작업을 하시는지 알수 없으나
공통컴포넌트를 기반으로 한다면
다음 설정파일에서
/src/main/resources/egovframework/egovProps/globals.properties
다음과 같이 DB서버 타입을 지정합니다.
Globals.DbType = oracle
다만, 이때 mssql은 지원하지 않아 별도 커스텀 작업이 필수 입니다.
다음 빈 설정파일에 대해 확인해 보시기 바랍니다.
/src/main/resources/egovframework/spring/com/context-datasource.xml
/src/main/resources/egovframework/spring/com/context-mapper.xml
다음 디렉토리 하위에 맵퍼 파일들을
MSSQL 쿼리문에 적합하게 생성한후에
지정된 네이밍 규칙대로 생성하는것도 확인이 필요합니다.
/src/main/resources/egovframework/mapper/com
감사합니다.