개발된 시스템에서 이상한 증세를 보였다. 개발 환경인 Tomcat 서버에서는 아무 문제 없이 동작하였는데, test 서버인 WebLogic 10 에서는 SQL 실행 오류가 발생하였다. 이래저래 원인을 찾다보니 서버나 application 측 문제가 아닌 data source에 문제가 있었다. data source 를 tomcat 이 아닌 WebLogic으로 변경했더니 tomcat에서도 동일한 증상이 발생하였다. 원인은 찾았는데 아직 해결은 못했다. 으윽.
막상 작업을 해 보니 Tomcat에서 weblogic DS에 연결하기가 생각만큼 쉽지 않았다. jndi path만 잡아주면 될 줄 알았는데 뭐이리 불평불만이 많은지. 최종적으로 성공한 설정을 공유하면 다음과 같다.
막상 작업을 해 보니 Tomcat에서 weblogic DS에 연결하기가 생각만큼 쉽지 않았다. jndi path만 잡아주면 될 줄 알았는데 뭐이리 불평불만이 많은지. 최종적으로 성공한 설정을 공유하면 다음과 같다.
- weblogic library 복사: Tomcat의 lib 디렉토리에 다음 파일을 복사한다.
- com.bea.core.diagnostics.instrumentor_1.0.1.0.jar
- com.bea.core.repackaged.asm_1.5.2.jar
- com.bea.core.xml.beaxmlbeans_2.3.1.0.jar
- ojdbc14.jar (내 경우 oracle DB를 사용하였기 때문임)
- wlfullclient.jar => wlfullclient.jar 생성 방법은 Using the WebLogic JarBuilder Tool를 참고.
- 개발한 web application 이 ojbdc.jar 를 포함하고 있을 경우, 이를 삭제함
- (이 부분은 자신이 없음)weblogic console 로 들어가, 접속하려는 DS 의 remote user setting ( 해당 DS > Security > Credential Mappings)
- spring configuration 수정: property 중 jbdc.jndi.factory 는 weblogic.jndi.WLInitialContextFactory 이다.
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" autowire-candidate="false">
<property name="jndiName" value="${jdbc.jndi.name}" />
<property name="jndiTemplate" ref="dataSourceJNDITemplate" />
</bean>
<bean id="dataSourceJNDITemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.provider.url">${jndi.provider.url}</prop>
<prop key="java.naming.factory.initial">${jdbc.jndi.factory}</prop>
<prop key="java.naming.security.principal">${weblogic.user}</prop>
<prop key="java.naming.security.credentials">${weblogic.passwd}</prop>
</props>
</property>
</bean>




덧글
2009/03/04 16:03 # 삭제 답글
비공개 덧글입니다.