스텁 명령 작성
createEJBStubs 명령은 JAR(Java archive), 웹 애플리케이션 아카이브(WAR) 또는 엔터프라이즈 아카이브(EAR) 파일에 패키징되는 EJB(Enterprise JavaBean) Bean의 원격 인터페이스를 위한 스텁 클래스를 작성합니다. 또한 JAR 파일이나 디렉토리에 있는 인터페이스 클래스에서 단일 스텁 클래스를 작성하는 옵션을 제공합니다. 여러 명령 옵션이 제공되어 다른 방식으로 생성된 스텁 클래스를 패키지합니다. 자세한 내용은 구문 및 예제 절을 참조하십시오.
- createEJBStubs.bat - Windows 플랫폼
- createEJBStubs.sh - UNIX 기반 플랫폼
- createEjbStubs - iSeries 플랫폼
명령은 입력 JAR, WAR 또는 EAR 파일을 검색하여 원격 인터페이스와 Bean을 포함하는 EJB 모듈을 찾습니다. 원격 인터페이스가 있으면, 해당 스텁 클래스가 생성되며 지정된 명령 옵션에 따라 패키지됩니다. 지정된 입력이 단일 인터페이스 클래스인 경우, 도구는 이 클래스가 EJB 원격 인터페이스 클래스이며 원격 스텁 클래스를 생성한다고 가정합니다.
- Java SE Java Virtual Machine(JVM)이 클라이언트 환경인 "기본적인" Java Standard Edition(SE) 클라이언트.
- EJB 3.0용 기능팩이 적용되지 않은 버전 7 이전의 버전이나 Java 7 애플리케이션에 있지 않은 EJB 3.x 이전 비즈니스 인터페이스의 WebSphere Application Server 컨테이너(웹 컨테이너, EJB 컨테이너 또는 애플리케이션 클라이언트 컨테이너).
- 비-WebSphere Application Server 환경.
createEJBStubs 명령을 실행한 JVM은 정의된 java.io.tmpdir 시스템 특성이 있어야 합니다. 특성은 존재하는 읽기 가능 및 쓰기 가능 디렉토리를 가리켜야 합니다.
EAR 및 JAR 파일에 패키지된 Bean 컨텐츠에 대한 스텁 작성 외에, 명령은 WAR 파일에 패키지된 Bean 컨텐츠에 대한 스텁도 작성합니다. EAR 파일이 입력 파일로 지정되고 해당 EAR 파일이 원격 인터페이스와 WAR 파일을 포함하는 경우, 스텁은 이 인터페이스에 대해 생성됩니다.
스텁은 스텁이 해당되는 원격 인터페이스나 Bean 클래스와 동일한 위치의 WAR 파일에 배치됩니다. 해당되는 원격 인터페이스나 Bean 클래스가 WEB-INF/클래스 디렉토리 구조에 느슨하게 배치되면, 스텁은 거기에도 배치됩니다. 원격 인터페이스나 Bean 클래스가 WEB-INF/lib 디렉토리의 JAR 파일 내에 패키지되면 스텁은 동일한 JAR 파일로 삽입됩니다. 스텁이 WAR 파일 내에 패키지되지 않은 원격 인터페이스에 대해 생성된 경우, WEB-INF/클래스 디렉토리 구조에 느슨하게 배치됩니다.
클라이언트 컴포넌트는 이 스텁을 사용하여 서버 내에서 실행 중인 EJB 컴포넌트와 통신합니다. 클라이언트 컴포넌트는 올바른 도구에서 작성되었던 스텁 인스턴스를 사용해야 합니다.
구문
createEJBStubsinput_ class_ name | input_JAR_name | input_WAR_name | input_EAR_name [-help] [-newfile[new_file]] [-updatefile[update_file]] [-quiet] [-verbose] [-logfile log_file] [-appendlog] [-cp class_path] [-trace]- createEJBStubs
- 단일 인터페이스 클래스 파일, JAR 파일, WAR 파일 또는 EAR 파일에 대한 EJB 스텁 클래스를 작성하는 명령입니다. 인수 없이, 또는 –help만으로 호출되면, createEJBStubs 명령은 지정될 수 있는 옵션 목록 및 상세한 설명이 있는 예 호출 목록을 표시합니다.
- input_class_name 또는 input_EAR_name 또는 input_JAR_name 또는 input_WAR_name
첫 번째 매개변수는 명령에 필요한 요소입니다. 처리할 소스 클래스, JAR, WAR 또는 EAR 파일을 포함해야 합니다.
이 매개변수는 단일 인터페이스 클래스의 완전한 이름일 수 있습니다(예: com.ibm.myRemoteInterface). 패키지 이름 세그먼트는 “.” 문자로 구분되며, 경로 이름은 클래스 이름을 진행하지 않으며 “.class” 확장자는 포함되지 않습니다. 이 인터페이스 클래스 입력의 경우, 클래스 경로 옵션(예: –cp my_path, 또는 –cp my_path/my_interfaces.jar)을 사용하여 인터페이스 클래스가 있는 위치를 지정해야 합니다. 생성된 스텁 클래스는 패키지 정의 디렉토리 구조로 배치되며, 명령이 호출된 현재 디렉토리로 시작됩니다.
이 매개변수는 JAR, WAR 또는 EAR 파일일 수도 있습니다. 이 경우 경로가 지정되어야 합니다(예: my_path/my_Server_App.ear). 생성된 스텁 클래스는 –updatefile 옵션이 지정되는지 여부에 따라 Bean과 동일한 모듈, 또는 원격 인터페이스 클래스와 동일한 모듈에 배치됩니다. 세부사항은 다음 섹션을 참조하십시오.
- -help
- 지정될 수 있는 옵션 목록 및 자세한 설명이 있는 예 호출을 포함한 명령 구문을 제공합니다.
- -newfile [new_file]
- 새 파일이 입력 JAR, WAR 또는 EAR 및 스텁 클래스의 원래 파일을 포함하여 생성되도록 요청합니다. 이 옵션이 지정되지 않으면, 스텁은 원래 JAR, WAR 또는 EAR 파일로 다시 작성됩니다. 이 옵션이 지정되지만 new_file 이름이 제공되지 않으면, 새 파일 이름은 "_withStubs"로 입력 JAR, WAR 또는 EAR 파일 이름을 추가하여 구성됩니다. 첫 번째 입력 매개변수가 인터페이스 클래스이면 이 옵션은 허용되지 않습니다.
- -updatefile [update_file]
- 두 번째 파일(예: 입력 파일 외에)이 스텁 클래스와 업데이트되도록 요청합니다. 이 옵션은 다른 패키징 동작도 제공합니다. 스텁 클래스는 원격 인터페이스 클래스와 동일한 모듈로 패키지됩니다. 반대로, 이 옵션이 지정되지 않으면 스텁 클래스는 Bean 클래스와 동일한 모듈로 패키지됩니다. 이 옵션이 지정되지만 update_file 이름이 제공되지 않으면, 원래 JAR, WAR 또는 EAR 파일이 스텁 클래스로 업데이트됩니다. 첫 번째 입력 매개변수가 인터페이스 클래스이면 이 옵션은 허용되지 않습니다.
- -quiet
- 메시지 억제를 요청합니다. -quiet 옵션은 –verbose 또는 –trace 옵션과 함께 지정될 수 없습니다. 오류 메시지는 여전히 표시됩니다.
- -verbose
- 추가 정보 메시지가 출력되도록 요청합니다. -verbose 옵션은 -quiet 또는 –trace 옵션과 함께 지정될 수 없습니다.
- -logfile log_file
- 메시지가 콘솔 외에 로그 파일에 인쇄되도록 요청합니다. 이 옵션이 지정된 경우 log_file 이름도 제공되어야 합니다.
- -appendlog
- 메시지가 기존 로그 파일에 추가되도록 요청합니다. 이 옵션이 지정된 경우 -logfile 옵션도 제공되어야 합니다.
- -cp class_path
- 클래스 로더가 추가 클래스나 jar 파일이 있는 지정된 클래스 경로를 포함하도록 요청하며, 원격 인터페이스 클래스가 로드되는 데 필요합니다. 클래스 경로는 각 경로가 운영 체제의 기본 경로 구분 기호 문자로 이전 경로와 구별되는 다중 세그먼트를 포함할 수 있습니다. 각 경로는 JAR 파일 또는 디렉토리를 지정할 수 있습니다. 이 옵션이 지정된 경우 class_path 이름도 제공되어야 합니다.
- -trace
- 자세한 추적 출력이 생성되도록 요청합니다. IBM® 서비스에서 사용하기 위한 정보를 수집하여 문제점을 해결하고자 합니다. 추적 출력은 영어만 됩니다. 이 옵션은 –quiet 또는 –verbose 옵션과 함께 지정될 수 없습니다.
예제
createEJBStubs com.ibm.myRemoteInterface -cp my_path
원격 인터페이스 클래스 하나에 대해 스텁 클래스를 생성하고 현재 디렉토리로 시작되는 패키지 정의 디렉토리 구조로 배치합니다. my_path 디렉토리는 클래스 경로로 사용됩니다. 처리할 원격 인터페이스 클래스가 JAR 파일에 있는 경우, –cp my_path/my_interfaces.jar 구문은 클래스 경로 스펙에 대해 사용되어야 합니다.createEJBStubs my_path/my_beans.jar -newfile –quiet
원격 인터페이스가 있는 my_beans.jar 파일에서 모든 엔터프라이즈 Bean에 대해 스텁 클래스를 생성합니다. 옵션 new_file 이름 매개변수는 –newfile 옵션과 함께 지정되지 않기 때문에 생성된 스텁 클래스와 원래 JAR 파일 컨텐츠 모두는 “ my_beans_withStubs.jar”이라는 새 JAR 파일로 패키지됩니다. 출력 메시지는 오류 알림을 제외하고 표시되지 않습니다.createEJBStubs my_path/my_Server_App.ear -logfile myLog.out
원격 인터페이스가 있는 my_Server_App.ear 파일에 모든 엔터프라이즈 Bean에 대해 스텁 클래스를 생성합니다. –newfile 옵션이 지정되지 않기 때문에 생성된 스텁 클래스는 원래 EAR 파일로 배치됩니다. –updatefile 옵션이 지정되지 않기 때문에 스텁 클래스는 Bean 클래스로서 동일한 모듈로 패키지됩니다. 메시지는 myLog.out 로그 파일과 명령 창 모두에 작성됩니다.createEJBStubs my_path/my_Server_App.ear -updatefile my_path/my_Client_interfaces.jar
원격 인터페이스가 있는 my_Server_App.ear 파일에 모든 엔터프라이즈 Bean에 대해 스텁 클래스를 생성합니다. 생성된 스텁 클래스는 원래 EAR 파일 및 my_Client_interfaces.jar 파일 모두로 배치됩니다. –updatefile 옵션이 지정되기 때문에 스텁 클래스는 원격 인터페이스 클래스로서 동일한 모듈로 패키지됩니다.createEJBStubs my_path/my_Server_App.ear –updatefile
원격 인터페이스가 있는 my_Server_App.ear 파일에 모든 엔터프라이즈 Bean에 대해 스텁 클래스를 생성합니다. 원래 update_file 이름 매개변수가 –updatefile 옵션으로 제공되지 않기 때문에 생성된 스텁 클래스는 원래 EAR 파일로만 배치됩니다. –updatefile 옵션이 지정되기 때문에 스텁 클래스는 원격 인터페이스 클래스로서 동일한 모듈로 패키지됩니다.createEJBStubs my_path/my_beans.war
WAR 파일에 패키징되고 원격 인터페이스가 있는 모든 Bean에 대한 스텁 클래스를 생성합니다. Bean1 클래스는 WEB-INF/클래스 디렉토리 구조 내에 느슨하게 패키지되므로, 해당 스텁은 거기에도 배치됩니다. 마찬가지로 Bean2 클래스는 WEB-INF/lib 디렉토리의 myEJB.jar 파일 내에 패키지되므로, 해당 스텁은 해당 JAR 파일로 삽입됩니다.