EJB 인스턴스를 찾기 위한 Java 코드 삽입

스니펫 보기를 사용하여 이미 정의하고 참조한 엔터프라이즈 Bean의 인스턴스를 찾는 Java™ 코드를 삽입하십시오.

이 태스크 정보

삽입한 Java 코드는 EJB 참조를 사용하여 엔터프라이즈 Bean의 원격 또는 로컬 홈 인터페이스를 찾아보고 "find" 메소드를 호출하여 엔터프라이즈 Bean의 인스턴스를 찾습니다.

스니펫 보기를 사용하여 이 코드를 신속하게 삽입할 수 있으므로 Bean의 인스턴스를 찾기 위해 해당 비즈니스 로직을 수동으로 코드화할 필요가 없습니다. Java 코드가 생성되고 편집 중인 Java 파일의 현재 위치에 삽입됩니다.

EJB find 메소드를 호출하는 스니펫 삽입 예제

스니펫을 삽입하기 전에는 다음과 같습니다.
public class Test {

	public void findAccountsPayableByPrimaryKey() { 		 	
		// insert snippet here
		
	}
}
Bean의 찾아보기를 수행한 후 인수를 지정하지 않고 findByPrimaryKey 메소드를 호출하는 코드가 추가된 스니펫 삽입 후는 다음과 같습니다.
import sample.Accountspayable;
import sample.AccountspayableKey;
import com.ibm.etools.service.locator.ServiceLocatorManager;
import java.rmi.RemoteException;
import sample.AccountspayableHome;
import javax.ejb.FinderException;
public class Test {

	private final static String STATIC_AccountspayableHome_REF_NAME = "ejb/Accountspayable";
	private final static Class STATIC_AccountspayableHome_CLASS = AccountspayableHome.class;
	public void findAccountsPayableByPrimaryKey() {
		// insert snippet here
		Accountspayable anAccountspayable = find_AccountspayableHome_findByPrimaryKey(primaryKey);
	}
	protected Accountspayable find_AccountspayableHome_findByPrimaryKey(
			AccountspayableKey primaryKey) {
		AccountspayableHome anAccountspayableHome = (AccountspayableHome) ServiceLocatorManager
				.getRemoteHome(STATIC_AccountspayableHome_REF_NAME,
						STATIC_AccountspayableHome_CLASS);
		try {
			if (anAccountspayableHome != null)
				return anAccountspayableHome.findByPrimaryKey(primaryKey);
		} catch (FinderException fe) {
			// TODO Auto-generated catch block
			fe.printStackTrace();
		} catch (RemoteException re) {
			// TODO Auto-generated catch block
			re.printStackTrace();
		}
		return null;
	}
}

프로시저

  1. Java EE 퍼스펙티브에서 엔터프라이즈 Bean의 인스턴스를 찾을 Java 파일을 편집기에서 열고 코드를 삽입할 Java 파일의 지점에 커서를 놓으십시오.
  2. 스니펫 보기에서 EJB 드로어를 펼치고 EJB "find" 메소드 호출을 두 번 클릭하십시오. EJB find 삽입 마법사가 열립니다.
  3. 작성할 Bean의 EJB 참조를 선택하고 다음을 클릭하십시오. 아직 추가하지 않았으면 새 EJB 참조를 클릭하여 EJB 참조를 추가하십시오. 마법사를 완료하기 전에 참조를 추가해야 합니다.
  4. 클라이언트와 참조된 엔터프라이즈 Bean이 동일한 애플리케이션 서버 컨테이너에 있지 않은 경우 제공업체 URL이름 서비스 유형을 입력하여 참조된 엔터프라이즈 Bean을 찾아야 합니다. 그렇지 않으면 이 참조에서 찾아보기 수행 시 기본 컨텍스트 특성 사용을 선택할 수 있습니다.
  5. 다음을 클릭하십시오.
  6. 호출할 find 메소드를 선택하고 다음을 클릭하십시오.
  7. 인수가 필요한 경우 선택한 메소드에서 각 매개변수의 값을 입력하십시오. 입력한 값은 정확히 표시된 대로 삽입됩니다. 문자열 값을 입력하려면 따옴표도 함께 입력해야 합니다.
  8. 완료를 클릭하십시오. 홈 인터페이스를 찾아보고 엔터프라이즈 Bean의 인스턴스를 찾는 Java 코드가 Java 파일에 추가됩니다.

결과

참고: 편집한 Java 클래스가 속한 각 엔터프라이즈 애플리케이션에 serviceLocatorMgr.jar 파일이 유틸리티 JAR 파일로 추가됩니다. 이 serviceLocator.jar 파일에는 삽입된 Java 코드 스니펫에서 사용되는 ServiceLocatorManager 클래스가 있습니다. 이 클래스는 홈 인터페이스 및 InitialContexts의 찾아보기를 최적화하고 전체 애플리케이션을 한 번만 찾아봅니다. 유틸리티 JAR 파일이 추가되므로 모듈 또는 Java 파일이 속한 Java 유틸리티 프로젝트에 대해 serviceLocator.jar 파일의 Java JAR 종속성이 추가됩니다.

ServiceLocatorManager 클래스에는 홈 인터페이스를 찾아볼 때 발생하는 오류 상태에 대한 특정 오류 핸들러를 지정하는 데 사용할 수 있는 setErrorHandler(ServiceLocatorErrorHandler 핸들러)라고 하는 정적 메소드가 있습니다. 기본 핸들러는 처리된 예외에서 간단하게 printStackTrace()를 호출합니다.


피드백