본문 바로가기

프레임워크

Closing a statement you left open, please do your own housekeeping 환경: JDK1.6.0_21 + JBoss EAP 4.3.2 + Spring 2.5.6 + iBATIS 2.3.4 19:50:53,405 WARN [WrappedConnection] Closing a statement you left open, please do your own housekeeping java.lang.Throwable: STACKTRACE at org.jboss.resource.adapter.jdbc.WrappedConnection.registerStatement(WrappedConnection.java:872) at org.jboss.resource.adapter.jdbc.WrappedStatement.(WrappedStatement.java:62) at org.jboss.resour.. 더보기
No JTA TransactionManager found at fallback JNDI location Jetty 6.1.11 + Spring 2.5.6에서 트랜잭션관리자를 와 같이 선언하고 로그레벨을 DEBUG 모드로 실행하면 다음과 같은 에러들을 볼 수 있다. [DEBUG] (JtaTransactionManager.java:717) - No JTA TransactionManager found at fallback JNDI location [java:comp/TransactionManager] javax.naming.NameNotFoundException; remaining name 'TransactionManager' ... [DEBUG] (JtaTransactionManager.java:717) - No JTA TransactionManager found at fallback JNDI location.. 더보기
JZ0SB: 매개변수 인덱스가 범위를 벗어났습니다. 1. iBatis + Sybase ASE 15.5 (ISO1) + JavaSE 6(JDK1.6.0_21) 환경에서... 제목과 같은 예외가 발생했다. 실행한 SQL은 다음과 같다. update IDCM..TC_CMN_CODE set code_wrth_abrv_name = '테스트' where code_id = #codeId# and code_wrth = #codeWrth# 그냥 지극히 평범한 SQL인데 왜 에러를 내는 것일까? 문제의 원인은 Encode(Charset)에 있었다. 즉, 매핑 XML이 와 같이 UTF-8으로 선언되어 있고 DB는 ISO1로 선언되어 있어서 코드를 변환했을 때 에러가 나는 것이었다. 만약 한글을 직접넣고 싶다면 UTF-8을 EUC-KR로 변경하면 정상처리된다. 더보기
iBatis + Sysbase ASE 15.5 Unicode Column CRU 검증결과 및 적용방안 1. 검증결과: JBoss WAS 에서 JDBC를 연결할 때 다음과 같이 DataSource를 생성한다. 이 내용은 JBoss에 배포할 서버의 deploy/sybase-ds.xml 의 내용중 일부이다. jdbc/KFlowDS jdbc:sybase:Tds:localhost:3000 com.sybase.jdbc3.jdbc.SybDriver eucksc … org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter true Sybase 여기서 핵심 내용은 JDBC의 속성중의 하나인 “CHARSET”을 “eucksc”로 설정함으로써 DB에서 읽거나 쓸 때 [iso1 : ISO-8859-1] – [eucksc: EUC-KR | KSC5601] 간 변환을 자동으로 .. 더보기
The server was expecting token 32 but got the token 33. This is an internal error. Spring 2.5.6 + 2.3.4.726 + Sybase ASE 15.5 환경에서 아래와 같은 에러가 발생했다면 데이터에 null이 들어있고 해당 값에 대한 적절한 JDBC Type을 찾지 못해서 발생하는 예외이다. Caused by: com.sybase.jdbc3.jdbc.SybSQLException: A wrong datastream has been sent to the server. The server was expecting token 32 but got the token 33. This is an internal error. at com.sybase.jdbc3.tds.Tds.a(Unknown Source) at com.sybase.jdbc3.tds.Tds.nextResult(Unknown S.. 더보기
스프링에서 Multi DataSource 사용 Spring-2.5.6 에서 여러개의 DataSource를 사용하는 방법을 소개한다. 다음과 같이 두개의 데이터 소스가 선언되어 있을 때 자동 주입(Inject)하고자 한다면 첫번째 @Resource annotation을 사용할 수 있다. @Resource(name = "riDataSource") public void setDataSource(DataSource dataSource) { super.buildSqlMapClient(dataSource); } 두번째 방법은 @Autowired와 @Qualifier 를 사용하는 방법이다. @Autowired public void setDataSource(@Qualifier("riDataSource") DataSource dataSource) { super.bu.. 더보기
[Castor] null값을 갖는 객체의 속성을 XML로 변환하기(Marshaling) "옳바른 성장과 따뜻한 나눔" Castor에서 null값을 갖는 속성은 무시된다. 즉, XML로 변환되지 않는다. 그런데 가끔 우리는 해당 엘리먼트가 반드시 존재해야 할 때가 있다. 즉, 값이 존재하지 않는 빈 태그가 필요한 경우 어떻게 할 것인가? Castor 1.3(castor-xml-1.3, castor-core-1.3) 사용 Castor 0.9.6 에서부터 지원하기 시작한 nillable을 이용하거나 핸들러를 만들 수 있다. 그러나 핸들러를 별도로 만들경우 모든 경우에 대한 핸들러를 만들어 줘야만 하기 때문에 현실적으로 어렵다. 그러므로 여기에서는 nillable을 이용한 방법을 알아본다. 아래와 같은 객체와 Castor맵핑파일이 있을 때 /** * 간단한 개인정보 */ public class P.. 더보기
IBM JDK 1.6 에서 Spring 2.5.2를 사용할 때 GenericTypeResolver 에서 NullPointerException이 발생하는 문제 윈도우 XP, Vista, Linux(Ubuntu) 에서 테스트 단계를 4단계나 거치면서 안정적이라고 생각했었다. 그러나 실제 운영 서버는 IBM 머신에 AIX / IBM JDK 1.6이었으며 이러한 테스트 환경을 초기에 구축하기어려웠다. 어느정도 문제가 있을 거란 예상은 했으나 이정도로 나를 힘들게 할줄은 몰랐다. 각종 검색사이트에서 검색을 해봐도 비슷하지만 내가 원하는 원인 분석이나 해결방법을 찾지를 못했다. 또하나 에러의 원인이 최하단의 내용을 보기보단 최상단 에러인 스트럿츠에 초점을 맞춰 해결방법을 찾으려고 했기때문에 더욱 힘들었던것 같다. 어쨌든 원인을 알았고 임시적인 해결방법을 찾았으니 나와 같은 경우를 만날 개발자를 위하여 정보를 남긴다. ----------- 실행환경 $ java -vers.. 더보기
mvn deploy:deploy-file에서 Return Code 401 이 발생했을 때 원인과 처리방법 아래와 같이 메이븐을 실행하고 난후 "Return Code 401"과 같은 에러가 발생했다. 에러를 처리하기위해 여러 구글링을 했지만 역시 특별한 해결책은 없어 보였다. 대부분 settings.xml에서 nextech-rep dev dev 와 같이 설정했는데 이 사용자의 권한이 없는 것이란다. 흠. 그래서 권한이 있는 유저로 바꿔도 같은 에러만 반복되었다. 아뿔싸. -DrepositoryId=centeral 와 같이 나는 repositoryId를 repositories/repository 의 id로 착각하여 centeral과 같이 준것이다. http://www.jfrog.org/sites/artifactory/1.2/import.html 에 다음과 같은 글이 나를 구원해 줬다. NOTE: the repo.. 더보기
acegi security 에서 예외별 처리방법 요구사항 사용자가 로그인했을때 실명인증여부를 판단하여 실명인증을 받지 않은 경우 실명인증을 받도록 한다. 문제점 로그인을 처리하는 acegi에서 과같이 실패했을 경우 하나의 URL만이 설정된다. 원하는 방향은 실명인증에 실패했을경우 실명인증에 실패했다는 것을 알거나 별도의 URL로 이동하여 처리되도록 하고 싶은 것이다. 방법 /CUC/realNameCertification.jsp 위와같이 특정 Exception을 처리할수 있도록 "exceptionMappings"를 등록한다. 더보기