JNDI 의 구성 요소 개인 환경, 공공 환경 및 배치 시 매 핑

5642 단어 자바sqljbossjdbcjpa
j2ee 가 사용 하기 어 려 운 이 유 는 jndi 가 사용 하기 어렵 기 때 문 입 니 다. 데이터 소스 라 는 데이터 원본 이 설정 되 어 있 는데 JPA 를 배치 할 때 데이터 원본 을 찾 을 수 없다 고 이상 하 게 말 합 니 다.오늘 jboss 를 사용 할 때 마침내 좀 깨 달 았 다.
원래 j2ee 의 구성 요 소 는 자바: / cop / env 라 는 jndi 디 렉 터 리 에 있 습 니 다.각 구성 요 소 는 다른 구성 요소 의 개인 환경 에 접근 하여 구성 요소 가 각각 독립 되 는 것 을 실현 할 수 없습니다.또한 일부 jndi 디 렉 터 리 와 이름 은 공공 입 니 다. 예 를 들 어 자바: / 아래 의 다른 이름, 그리고 일 부 는 로 컬 에 만 접근 할 수 있 고 일 부 는 원 격 으로 접근 할 수 있 습 니 다. 이 건 말 하지 않 겠 습 니 다.
하나의 구성 요소 가 다른 구성 요 소 를 얻 으 려 면 배치 설명 부적 에 설명 해 야 합 니 다. 예 를 들 어:
<resource-ref>
  <description>Dollys DataSource</description>
  <res-ref-name>jdbc/mydatasource</res-ref-name>
  <res-ref-type>javax.sql.DataSource</res-ref-type>
  <res-auth>Container</res-auth>
</resource-ref>
이 구성 요 소 는 자바: / cop / env / jdbc / my datasource 라 는 데이터 원본 에 의존 해 야 합 니 다.그런데 이 데이터 원본 은 또 어디서 나 오지??!!조심 하 세 요!원래 배치 할 때 서버 종류 에 특 정 된 데이터 원본 맵 파일 을 쓰 려 고 했 습 니 다. 예 를 들 어 아래 jboss 예제 와 같 습 니 다.
<resource-ref>
   <res-ref-name>jdbc/mydatasource</res-ref-name>
   <jndi-name>java:DefaultDS</jndi-name>
</resource-ref>
위의 이 단락 은 jboss - web. xml 등 jboss 의 특정한 배치 설명 부적 에 있 을 수 있 습 니 다.전체 자바: DefaultDS 를 이 구성 요소 의 자바: / cop / env / jdbc / my datasource 에 표시 하 는 것 이 목적 입 니 다.바로 이 단계 입 니 다. 배치 에 실패 한 이 유 는 jndi 를 찾 지 못 한 것 은 모두 이러한 맵 이 없어 서 생 긴 것 입 니 다.
서버 에 지정 한 배치 설명 자 를 쓰 지 않 으 려 면 다음 과 같은 공공 jndi 를 지정 하여 해결 할 수 있 을 것 같 습 니 다.
<resource-ref>
  <description>Dollys DataSource</description>
  <res-ref-name>java:DefaultDS</res-ref-name>
  <res-ref-type>javax.sql.DataSource</res-ref-type>
  <res-auth>Container</res-auth>
</resource-ref>
문 제 는 해 결 됐 지만 갑자기 징 그 러 워. 이렇게 복잡 하 게 만 들 필요 가 있 나?!j2ee 역시 프로젝트 하 러 온 거 아니 야.

좋은 웹페이지 즐겨찾기