Weblogic 에 Hibernate 를 JNDI 로 설정

5503 단어 Weebbllooggi
첫째,우선 웹 logic 에서 검색 할 수 있 는 CLASSPATH 경로 에 Hibernate 가 사용 하 는 jar 패키지 와 프로필 을 모두 넣 어야 합 니 다.이 단계 만으로 도 많은 사람들 이 망 설 이 고 있 습 니 다.사실 Weblogic 의 시작 스 크 립 트 파일 인 startWeblogic.cmd 와 startWLS.cmd 를 자세히 살 펴 보 세 요.대부분의 사람들 이 어떻게 설정 해 야 할 지 알 고 있 을 것 같 습 니 다.제 기계 에 있 는 하 이 버 네 이 트 프로젝트 가 있 습 니 다.D:estoracle 디 렉 터 리 에서 이 디 렉 터 리 의 구 조 는 D:estoraclelib 에 hibenate 를 설치 한 모든 jar 패키지 D:estoraclesrc 에 소스 코드 D:estoracleclasses 가 컴 파일 한 코드 와 hibenate 설정 파일(hibenate.properties,log4j.properties,cache.ccf)현재 D:estoraclelib 디 렉 터 리 에 있 는 jar 파일 과 D:estoracleclasses 디 렉 터 리 를 Weblogic 의 CLASSPATH 에 배치 해 야 하기 때문에 my domain 의 Weblogic 시작 스 크 립 트 startWeblogic.cmd 를 수정 하고 Weblogic 를 시작 하기 전에 CLASSPATH 를 설정 하 는 명령 을 삽입 합 니 다.다음 과 같 습 니 다.@remi set hibenate classpath set HIBERNATELIB=D: estoraclelib   set HIBERNATE_CLASSES=D: estoracleclasses   set CLASSPATH=%CLASSPATH%;%HIBERNATE_LIB%cglib-asm.jar;%HIBERNATE_LIB%commons-beanutils.jar;   %HIBERNATE_LIB%commons-collections.jar;%HIBERNATE_LIB%commons-lang.jar;   %HIBERNATE_LIB%commons-logging.jar;%HIBERNATE_LIB%dom4j-full.jar;   %HIBERNATE_LIB%hibernate2.jar;%HIBERNATE_LIB%jcs.jar;   %HIBERNATE_LIB%log4j-1.2.8.jar;%HIBERNATE_LIB%odmg.jar;   %HIBERNATE_LIB%jta.jar;%HIBERNATE_CLASSES%; 다음 줄 은 원래 스 크 립 트 의 시작 명령 입 니 다.@remy Call Weblogic Server call"C:eaweblogic700server instartWLS.cmd"2.Weblogic 에 Oracle 데이터베이스 연결 풀 을 설정 합 니 다.이 단 계 는 원래 Hibernate 와 무관 하지만 EJB 를 사용 하려 면 JTA 를 사용 하려 면 Weblogic 가 제공 하 는 연결 풀 을 사용 해 야 합 니 다.Hibernate 가 가지 고 있 는 연결 탱크 나 다른 제3자 연결 탱크 를 사용 할 수 없습니다.그렇지 않 으 면 용 기 는 데이터베이스 업 무 를 관리 할 수 없습니다.이 단 계 는 매우 간단 합 니 다.바로 Weblogic Console 에 Connection Pool 과 TxData Source 를 설정 하 는 것 입 니 다.제 TxDataSource 는'my pool'3 이 라 고 부 르 고 hibenate.properties 를 수정 합 니 다.자체 연결 풀 대신 Weblogic 연결 풀 을 사용 합 니 다.제 가 수정 한 것 은 D:estoracleclasses hibenate.properties 입 니 다.다음 줄 처럼 증가 합 니 다:hibenate.dialect net.sf.hibenate.dialect.Oracle Dialect hibenate.connection.datasource my pool hibenate.connection.providerclass net.sf.hibernate.connection.DatasourceConnectionProvider   hibernate.session_factory_name hibernate.session_factory 마지막 줄 을 주의 하 십시오.이것 은 JNDI 가 JNDI 에 게 붙 인 이름 을 Hibernate 로 연결 하 는 것 입 니 다.원래 hibernate/session 이 어야 합 니 다.factory,하지만 Weblogic 는'번호'로 바 꿔 달라 고 요 구 했 지만 프로그램 에서 lookup 을 할 때 는 hibenate/session 을 써 야 합 니 다.factory 에서 따로 언급 한 것 은 hibenate.jdbc.fetch 입 니 다.size 50   hibernate.jdbc.batch_size 25 는 각각 데이터베이스 조회 와 삽입 에 큰 성능 영향 을 미 치 므 로 이 두 옵션 을 조절 하면 가장 좋 은 성능 을 얻 을 수 있 습 니 다.Session Factory 인 스 턴 스 의 사전 생 성 을 위해 Weblogic 의 T3 StartUpDef 인터페이스 로 StartUp 류 를 만 들 고 Weblogic 가 시 작 될 때 실행 합 니 다:package com.javaeye;  import java.util.Hashtable;   import weblogic.common.T3StartupDef;   import weblogic.common.T3ServicesDef;   import net.sf.hibernate.cfg.Configuration;   import net.sf.hibernate.SessionFactory;   public class HibernateStartUp implements T3StartupDef {   public void setServices(T3ServicesDef services) {}   public String startup(String name, Hashtable args) throws Exception {   SessionFactory sf = new Configuration().configure().buildSessionFactory();   return "Hibernate Startup completed successfully"; }}코드 는 매우 간단 합 니 다.사실은 Session Factory sf=new Configuration().configure().buildSession Factory()를 미리 실행 하도록 확보 하 는 것 입 니 다.sf 를 만 들 고 Hibernate 는 일련의 방법 을 사용 하여 sf 를 Weblogic 의 JNDI 트 리 에 연결 하 는 hibernate/sessionfactory 경로 중.4.HibernateStartUp.java 를 컴 파일 할 때 주의해 야 할 것 은 weblogic.jar 패키지 와 Hibernate 의 모든 관련 패키지 와 프로필 을 가 져 오 는 것 입 니 다.저 는 이 소스 코드 를 D:estoraclesrc 디 렉 터 리 에 넣 었 습 니 다.이미 작 성 된 ant 스 크 립 트 로 실행 하면 컴 파일 되 었 습 니 다.그리고 컴 파일 된 class 파일 은 D:estoracleclasses 디 렉 터 리 에 놓 여 있 습 니 다.이 디 렉 터 리 는 Weblogic 의 CLASSPATH 에 추가 되 어 있 기 때문에 편리 합 니 다.5.StartUp 클래스 를 설정 하여 Weblogic 를 시작 합 니 다.Console 콘 솔 을 열 고 왼쪽 Applet 트 리 에서 StartUp&Shutdown 을 찾 은 다음 오른쪽 에서"Configure a new Startup Class..."를 클릭 하고 Name 상자 에 마음대로 작성 합 니 다.ClassName 에 당신 이 작성 한 StartUp 클래스 를 작성 합 니 다.저 는 com.javaye.HibernateStart Up 을 클릭 하고"Apply"를 클릭 합 니 다.그리고 Target 옵션 으로 전환 합 니 다.Target-server 왼쪽 Avaiable 상자 에서'my server'를 선택 하고 오른쪽 화살 표를 누 르 면 오른쪽'Chosen'상자 로 옮 기 고 마지막 으로'Apply'단 추 를 누 르 십시오.이 때 Weblogic 의 DOS 창 에 오류 메시지 가 없 었 다 면 설정 에 성 공 했 을 것 입 니 다.6.현재 Weblogic 를 닫 고 startWelogic.cmd 를 다시 실행 하고 Weblogic 를 시작 합 니 다.DOS 창의 출력 정 보 를 관찰 하면 Hibernate 의 초기 화 정보 한 화면의 스크롤 출력 을 볼 수 있 고 설정 이 성공 적 임 을 증명 합 니 다.이제 콘 솔 콘 솔 을 열 고 왼쪽 Applet 트 리 에 있 는 Servers|my server 를 클릭 한 다음 오른쪽 맨 아래 에서"View JNDI tree"를 찾 을 수 있 습 니 다.이 를 클릭 하면 브 라 우 저 창 을 열 어 JNDI 트 리 를 표시 합 니 다.이때 hibenate 라 는 JNDI 이미 지 를 볼 수 있 습 니 다.왼쪽 Applet 트 리 에서 클릭 하여 오른쪽 에 있 는 자세 한 정 보 를 볼 수 있 습 니 다.내 기계 의 정 보 는 다음 과 같다.Bind Name:hibenate Object Class:net.sf.hibenate.impl.ession Factory Impl Object Hash Code:454492 Object To String:net.sf.hibenate.impl.SessionFactoryImpl@6ef5c완전 정 답!마지막 으로 EJB 나 Servlet/JSP 에서 JND 검색 을 통 해 Session Factory 를 얻 을 수 있 습 니 다.예 를 들 어 Context ctx=new InitialContext();  SessionFactory sf = (SessionFactory) ctx.lookup("hibernate/session_factory"); 주의:상기 코드 는 WebLogic 용기 안에서 만 실 행 될 수 있 으 며,WebLogic 용기 밖에서 만 실 행 될 수 없습니다.Session Factory 가 직렬 화 인 터 페 이 스 를 실현 하지 않 았 기 때문에 클 라 이언 트 프로그램(다른 단독 JVM 에서 실행)이 WebLogic JNDI 를 원 격 으로 방문 하여 Session Factory 를 로 컬 로 직렬 화 하려 고 하면 실패 할 것 입 니 다.그러나 Session Factory 가 직렬 화 인 터 페 이 스 를 실현 하 더 라 도 RMI 를 지원 할 수 있 는 대상 이 아니 기 때문에 WebLogic 용기 밖에서 정상적으로 호출 할 수 없습니다.이와 달리 WebLogic 자체 의 DataSource,EJB,JMS 등 은 모두 RMI 를 지원 하 는(전제조건 은 WebLogic 에 해당 하 는 jar 가 있어 야 함)이기 때문에 WebLogic 밖에서 lookup 하고 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기