Spring 2.5, Tomcat 개발서버에서 WebLogic 10 DataSource 연결하기 콤퓨타

개발된 시스템에서 이상한 증세를 보였다. 개발 환경인 Tomcat 서버에서는 아무 문제 없이 동작하였는데, test 서버인 WebLogic 10 에서는 SQL 실행 오류가 발생하였다. 이래저래 원인을 찾다보니 서버나 application 측 문제가 아닌 data source에 문제가 있었다. data source 를 tomcat 이 아닌 WebLogic으로 변경했더니 tomcat에서도 동일한 증상이 발생하였다. 원인은 찾았는데 아직 해결은 못했다. 으윽.

막상 작업을 해 보니 Tomcat에서 weblogic DS에 연결하기가 생각만큼 쉽지 않았다. jndi path만 잡아주면 될 줄 알았는데 뭐이리 불평불만이 많은지. 최종적으로 성공한 설정을 공유하면 다음과 같다.

  1. weblogic library 복사: Tomcat의 lib 디렉토리에 다음 파일을 복사한다.
    1.  com.bea.core.diagnostics.instrumentor_1.0.1.0.jar
    2. com.bea.core.repackaged.asm_1.5.2.jar
    3. com.bea.core.xml.beaxmlbeans_2.3.1.0.jar
    4. ojdbc14.jar (내 경우 oracle DB를 사용하였기 때문임)
    5. wlfullclient.jar => wlfullclient.jar 생성 방법은 Using the WebLogic JarBuilder Tool를 참고.
  2. 개발한 web application 이 ojbdc.jar 를 포함하고 있을 경우, 이를 삭제함
  3. (이 부분은 자신이 없음)weblogic console 로 들어가, 접속하려는 DS 의 remote user setting ( 해당 DS > Security > Credential Mappings)
  4. 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>

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://kingori.egloos.com/tb/3978631 [도움말]

덧글

덧글 입력 영역