복붙노트

[SPRING] NameNotFoundException : 이클립스 케플러에서 게시 할 때만 'jdbc'를 조회하려고하지만 인디고는 그렇지 않습니다.

SPRING

NameNotFoundException : 이클립스 케플러에서 게시 할 때만 'jdbc'를 조회하려고하지만 인디고는 그렇지 않습니다.

Oracle Weblogic 12c (12.1.1) AdminServer에 Eclipse-Indigo 3.7.2에서 oepe 12.1.1.1.1을 사용하여 웹 응용 프로그램을 게시 할 수 있습니다.

그러나 oepe 12.1.2.2를 사용하여 Eclipse Kepler 4.3.1로 가져온 것과 똑같은 웹 응용 프로그램은 다음과 같이 게시하지 못합니다 (예외는 있습니다). 이유는 무엇입니까? ...

Weblogic 12c 데이터 소스는 확실히 사용할 수 있으므로 인디고에서 게시 할 때 응용 프로그램을 배포하고 아무런 문제없이 실행하면 올바르게 구성되었다고 가정해야합니다.

또한 indento에서 게시 할 때 applicationContext.xml, web.xml 및 weblogic.xml의 매핑이 올바른 것으로 가정하므로 다시 문제가 없습니다. 매핑은 다음과 같습니다 ...

src \ main \ webapp \ WEB-INF \ spring \ applicationContext.xml

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
 <property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>

src \ main \ webapp \ WEB-INF \ web.xml

<resource-ref>
 <description>Oracle Weblogic Connection Pool (oraclexe)</description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 <mapped-name>jdbc/oraclexe</mapped-name>
</resource-ref>

build \ weboutput \ WEB-INF \ weblogic.xml

<resource-description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <jndi-name>oraclexe</jndi-name>
</resource-description>

jndiName / resource-ref / res 사이의 매핑 문제가 아닌 weblogic.xml이 배포 중에 사용 가능하지 않은지 궁금합니다 (예 : src \ main \ webapp \ WEB-INF 폴더로 복사되지 않음). -ref-name 그 자체? weblogic.xml을 src \ main \ webapp \ WEB-INF 폴더에 직접 저장하려고 시도했지만 동일한 예외가 발생합니다.

나의 유일한 다른 생각은 Indigo oepe 12.1.1.1.1이 Weblogic 12.1.1에 게시하는 것이 행복하지만 Kepler oepe 12.1.2가 아니며 Weblogic 12.1.2 서버에 게시해야한다는 것입니다.

해결법

  1. ==============================

    1.1 주일 정도의 시행 착오 / 제거 과정을 거쳐이 문제를 해결하고 필요한 매핑을 더 잘 이해할 수있었습니다. 엘리엇 (Elliott)은 이것이 JNDI 조회에 문제가 있다고 의심했기 때문입니다. 그것은 Indigo에서 weblogic 12.1.1에 게시 될 때 예상대로 작동한다는 사실에 의해 혼합되었습니다. (나는 아직도 그 이유가 확실하지 않습니다.)

    1 주일 정도의 시행 착오 / 제거 과정을 거쳐이 문제를 해결하고 필요한 매핑을 더 잘 이해할 수있었습니다. 엘리엇 (Elliott)은 이것이 JNDI 조회에 문제가 있다고 의심했기 때문입니다. 그것은 Indigo에서 weblogic 12.1.1에 게시 될 때 예상대로 작동한다는 사실에 의해 혼합되었습니다. (나는 아직도 그 이유가 확실하지 않습니다.)

    이를 해결하기위한 초기 시도는 weblogic.xml의 매핑에 초점을 맞추 었습니다. weblogic 서버에 퍼블리싱 할 때 데이터 소스를 확인할 때 이것이 참조되었다고 잘못 가정했습니다. 결과적으로 이것이 사실이 아니며 weblogic.xml 자원 설명이 필요하지 않습니다.

    applicationContext.xml은 그대로 유지됩니다.

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
    </bean>
    

    그러나 java : comp / env / jdbc / oraclexe의 jndiName 값은 web.xml res-ref-name 값 인 jdbc / oraclexe에 매핑됩니다 (내가 잘못 가정 한 weblogic.xml res-ref-name이 아닙니다). ..

    web.xml 매핑 된 이름이 수정되었습니다.

    <resource-ref>
     <description>Oracle Weblogic console JDBC Data Source</description>
     <res-ref-name>jdbc/oraclexe</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
     <mapped-name>oraclexe</mapped-name>
    </resource-ref>
    

    ... 그러면 Weblogic 콘솔 JDBC 데이터 소스 JNDI 이름에 매핑되는 매핑 된 이름 값 oraclexe가됩니다.

    weblogic.xml의 리소스 설명 노드는이 특정 구성에서 참조되지 않기 때문에 완전히 생략되었습니다.

  2. ==============================

    2.필자의 경우, 설정은 Weblogic 12.1.3과 Eclipse Mars 4.5.0이었다; 귀는 wls에 잘 적용되어 작동했지만 elipse에서 게시 할 때도 동일한 오류가 발생했습니다. 문제는 데이터 소스의 운명이 응용 프로그램을 배포하기 위해 만들어진 서버 였고 Eclipse가 AdminServer에 게시했기 때문입니다. 데이터 소스에 두 가지 운명을 추가했는데 제대로 작동했습니다.

    필자의 경우, 설정은 Weblogic 12.1.3과 Eclipse Mars 4.5.0이었다; 귀는 wls에 잘 적용되어 작동했지만 elipse에서 게시 할 때도 동일한 오류가 발생했습니다. 문제는 데이터 소스의 운명이 응용 프로그램을 배포하기 위해 만들어진 서버 였고 Eclipse가 AdminServer에 게시했기 때문입니다. 데이터 소스에 두 가지 운명을 추가했는데 제대로 작동했습니다.

  3. ==============================

    3.이것은 나를 위해 일한 구성입니다 :

    이것은 나를 위해 일한 구성입니다 :

    applicationContext.xml

    <jee:jndi-lookup id="dataSource" resource-ref="true"
        jndi-name="jdbc/alias" expected-type="javax.sql.DataSource" />
    

    을 포함한다.

    <resource-ref>
       <res-ref-name>jdbc/alias</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
    </resource-ref>
    

    weblogic.xml

    <wls:resource-description>
        <wls:res-ref-name>jdbc/alias</wls:res-ref-name>
        <wls:jndi-name>jdbc/resource/weblogic</wls:jndi-name>
    </wls:resource-description>
    
  4. from https://stackoverflow.com/questions/21355945/namenotfoundexception-while-trying-to-lookup-jdbc-only-when-publishing-from-e by cc-by-sa and MIT license