응용개발

Weblogic 10.0 사용시 JDK 1.5를 사용한 JDBC 드라이버 사용시 주의사항.

by cubebridge posted Feb 22, 2012

대상 CUBRID 버전 : CUBRID R3.1 이상 버전 모두

 

이슈가 되는 경우 : 
Weblogic 같이 Security Exception 을 통해 java. 로 시작하는 package 들을 보호하는 기능이 존재하는 Application .


이슈 설명 :

CUBRID R3.1 이상의 JDBC 버전 부터는 JDK1.5 와 JDK 1.6 에서 모두 빌드될 수 있도록 java.sql.* 로 시작한 Class 가 Dummy
Class 로 정의 되어있음.

 

Dummy 로 생성되어있는 Class 목록

 

java.sql.ClientinfoStatus
java.sql.NClob
java.sql.RowId
java.sql.RowIdLifetime
java.sql.SQLClientInfoException
java.sql.SQLXML


JDK 1.5, 1.6 에서의 빌드 또는 사용하는데에는 이상 없으나, WebLogic 같은 특정 Application 에서 java. 으로 
시작하는 package 들을 보호하는 Security Exception 을 발생하여 Conenction Pool 을 생성할 수 없는 문제가 발생함.


에러 메시지 예 )

Nested Exception: java.lang.SecurityException: Prohibited package name: java.sql at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479)

 

fail java.sql.SQLException: Cannot obtain connection: driverURL = jdbc:weblogic:pool:CUBRID_JDBC_4.0, 
props = {EmulateTwoPhaseCommit=false, connectionPoolID=CUBRID_JDBC_4.0, jdbcTxDataSource=true, 
LoggingLastResource=false, dataSourceName=CUBRID_JDBC_4.0}. 
Nested Exception: java.lang.SecurityException: Prohibited package name: java.sql at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479)

 

해결방법 : 
JDK 1.5 을 사용하는 경우 위와 같은 메시지가 발생하면, 
CUBRID 사 ( http://www.cubrid.com ) 또는 Naver 개발자센터 ( http://dev.naver.com/projects/cubrid ) 로 연락주셔서 해당 클래스가 제거된 JDBC 드라이버를 따로 요청 후 설치하시길 바랍니다. 


Articles

1 2 3 4 5 6 7 8 9 10