웹 서비스 마법사는 기존의 WSDL 문서에서
스켈레톤 EJB를 작성하는 단계를 지원합니다. 스켈레톤 EJB는
WSDL 문서에 기술된 조작과 일치하는 메소드 세트를
포함합니다. EJB가 작성되면 각 메소드는 사용자가 Bean을 편집하여 대체할 수 있는
일반 구현을 포함합니다.
시작하기 전에
전제조건:
- EJB 프로젝트를 작성하여 새 EAR 프로젝트에 추가하십시오. 이 프로젝트에
스켈레톤 EJB Bean이 생성됩니다.
- 선택사항: 사용 중인 전송 방법이 HTTP를 통한 SOAP인 경우 비어 있는
웹 프로젝트를 작성하십시오. 전송 방법이 JMS를 통한 SOAP를
사용 중인 경우에는 라우터 프로젝트 역할을 수행할 EJB 프로젝트를 작성하십시오.
작성된 프로젝트는 엔터프라이즈 Bean을 포함할 EJB 프로젝트와 동일한
EAR에 추가되어야 합니다. 라우터 모듈에 대한 자세한 정보는 웹 서비스 라우터 모듈 작성을
참조하십시오. 이 프로젝트를 작성하지 않을 경우
마법사에서 자동으로 프로젝트가 작성됩니다.
- WSDL 문서를 검색하여 웹 프로젝트로 가져오십시오. 서비스 요소가 포함된 WSDL 파일만 사용할
수 있습니다.
- JMS를 통한 SOAP를 사용하려는 경우 JMS를 통한 SOAP를
사용하는 서버 및 서버 구성 작성의 설명에 따라 JMS를 사용하는 서버 및 서버 구성을
작성해야 합니다.
- 컴퓨터 속도에 따라 시작하는 시간이 달라질 수 있으므로, 웹 서비스 마법사를 실행하기 전에
WebSphere® Application Server를 시작하는 것이
좋습니다. 서버를 시작하려면 서버 보기에서 서버를 선택하고(창
> 보기 표시 > 서버) 마우스 오른쪽 단추를 클릭한 다음 시작을 클릭하십시오.
- EJB 애플리케이션 개발에 대한 자세한 정보는 Information Center에서
엔터프라이즈 애플리케이션 개발을 참조하십시오.
이 태스크 정보
WSDL 문서에서 웹 서비스 및 스켈레톤 EJB를 작성하려면 다음을 수행하십시오.
프로시저
- Java™ EE
퍼스펙티브(창 > 퍼스펙티브 열기 > Java EE)로 전환하십시오.
- 엔터프라이즈 탐색기 보기에서 스켈레톤 EJB 웹 서비스를 작성할 웹 프로젝트를 선택하십시오.
- 파일 > 새로 작성 > 기타를 클릭하십시오. 다양한 웹 서비스 마법사를 표시하려면
웹 서비스를 선택하십시오. 웹 서비스 마법사를 선택하십시오.
다음을 클릭하십시오.
- 웹 서비스 페이지: 웹 서비스 유형 드롭 다운 목록에서
하향식 EJB 웹 서비스를 선택하십시오. EJB Bean을 생성하는 데
사용할 WSDL, WSIL 또는 HTML 파일의 URI를 입력하십시오.
URI 앞에 공백이 포함되지 않도록 주의하십시오. 공백이 포함될 경우
널 포인터 예외가 발생할 수 있습니다. 다음을 수행할 수도 있습니다.
- 슬라이더를 사용하여 완료할 웹 서비스 개발 단계를 선택하십시오. 이를 수행하면 나머지 마법사 패널에
다음과 같은 여러 기본값이 설정됩니다.
- 개발: 이 단계에서는 웹 서비스의 WSDL 정의 및 구현을 생성합니다. 여기에는 생성된 코드, WSDL 파일, 배치 디스크립터 및
Java 파일이 있는 경우 이를 포함하는
모듈 작성과 같은 태스크가 포함됩니다.
- 어셈블: 이 단계에서는 웹 서비스 또는 클라이언트를 호스팅하는 프로젝트가 대상 애플리케이션 서버에서 필요할 때
EAR에 연관시킵니다. 라우터 모듈은 이 단계에서 작성됩니다.
- 배치: 이 단계에서는 서비스 배치 코드를 작성합니다.
- 설치: 이 단계에서는 대상 서버에 웹 모듈 및 EAR을 설치하고 구성합니다. WSDL 파일의 엔드포인트를 변경해야 하는 경우 이 단계에서 변경합니다.
- 시작: 이 단계에서는 서비스를 서버에 설치하면 서버를 시작합니다.
- 테스트: 이 단계에서는 일반 서비스 클라이언트, 웹 서비스 탐색기
또는 샘플 JSP 등 서비스 테스트에 사용할 수 있는 다양한 옵션을
제공합니다. HTTP 전송을 사용하는 웹 서비스를 테스트하려면 웹 서비스 탐색기를 사용해야 합니다.
- 서버 선택: 기본 서버가 표시됩니다. 다른 서버에 서비스를 배치하려면 링크를 클릭하여
다른 서버를 지정하십시오.
- 런타임 환경 선택: 기본 런타임 환경이
표시됩니다. 다른 런타임 환경에 서비스를 배치하려면
링크를 클릭하여 다른 런타임을
지정하십시오.
- 서비스 프로젝트 선택: 작업공간에서 선택된 프로젝트를 포함한
프로젝트가 표시됩니다. 다른 프로젝트 및 EAR을 선택하려면 프로젝트 링크를 클릭하십시오. 클라이언트 웹 프로젝트로 선택한 프로젝트가 서비스 웹 프로젝트와 다른지 또는 클라이언트에서 생성된 아티팩트가
서비스를 겹쳐쓰는지 확인하십시오.
- 클라이언트를 작성하려면 생성하려는 프록시 유형을 선택하고 클라이언트에 대해 위 단계를 반복하여 수행하십시오.
- 웹 서비스 공개: 웹 서비스를 UDDI 레지스트리에 공개할 수 있도록 웹 서비스 탐색기가 실행됩니다.
- 웹 서비스 모니터: 이 단계에서는 웹 서비스에서 생성된 SOAP 트래픽을 관찰하고 WS-I 준수를 확인하기 위해 이 트래픽을
테스트할 수 있는 TCP/IP 모니터를 통해 웹 서비스 트래픽을 송신합니다. 또는
웹 서비스 테스트를 위한 TCP/IP 모니터 사용에
설명된 대로 TCP/IP 모니터를 수동으로 설정할 수 있습니다. HTTP 전송을 사용하는 웹 서비스만 모니터할 수 있습니다.
또한 TCP/IP 모니터를 통해 웹 서비스 트래픽을 라우팅할 경우,
유니버셜 테스트 클라이언트를 사용하여 웹 서비스를 테스트할 수 없습니다.
- 웹 서비스 스켈레톤 EJB 구성 페이지:
- HTTP 또는 JMS 바인딩을 사용할지 여부를 선택하고
라우터 프로젝트를 선택하십시오.
- 원할 경우 웹 서비스의 서버측에 보안을 설정할 수도 있습니다.
- 원격 클라이언트 보기 추가: EJB 2.1 스펙부터는 Stateless 세션 Bean에
웹 서비스 클라이언트 보기와 로컬 및 원격 보기가 포함될 수 있습니다. 각 웹 서비스 클라이언트 보기는
하나의 서비스 엔드포인트 인터페이스를 포함합니다.
- 네임스페이스에서 패키지로의 맵핑을 사용자 정의: 사용자 정의
맵핑 쌍을 입력할 수 있습니다.
- 웹 서비스 네임스페이스에서 패키지로의 맵핑 페이지: 웹 서비스 클라이언트 마법사는
지정된 WSDL로부터 많은 Java 파일을 생성합니다. 기본적으로
WSDL 파일에 지정된 네임스페이스를 기준으로 패키지 이름을 작성합니다. 이 기본 동작을
대체하려면 WSDL 파일의 모든 네임스페이스 또는 일부 네임스페이스에
고유한 패키지 이름을 지정하면 됩니다. 이전 페이지에서, 네임스페이스에서
패키지로의 맵핑을 사용자 정의를 선택한 경우, 이 페이지에서
추가를 클릭하여 사용자 정의 맵핑 쌍을 입력할 수 있습니다.
또는 가져오기를 클릭하여 .properties 파일에서
사용자 정의 맵핑 쌍을 가져올 수 있습니다. 특성 파일의 컨텐츠는
namespace=package 형식이어야 합니다. 특성 파일에서는 일부 특수 문자를 이스케이프 처리해야
합니다. 예를 들어, http://someNamespace=somePackage를
http\://someNamespace=somePackage와 같이 처리해야 합니다. 이렇게 하지 않으면
콜론(:)이 분리 문자로 처리되어 http에서
//someNamespace=somePackage로 맵핑을 시도합니다.
Java에서의 특성 파일 형식에 대한 자세한 정보는
Java 플랫폼 API 문서: java.util.Properties 로드 메소드를 참조하십시오.
- 웹 서비스 테스트 페이지: 웹 서비스 탐색기 또는 일반 서비스 클라이언트에서 웹 서비스를 테스트하려면
실행을 클릭하십시오.
테스트하려는 오퍼레이션을 선택하고
필수 정보를 입력한 다음 이동을 클릭하십시오. 결과가 상태 분할창에 표시됩니다.
- 웹 서비스 프록시 페이지: 프록시를 생성하고 이 프록시에 대한
보안 설정 여부를 선택하려면 선택하십시오. 원할 경우, 네임스페이스에서
패키지로의 사용자 정의 맵핑을 입력하도록 선택할 수 있습니다.
- 웹 서비스 클라이언트 네임스페이스에서 패키지로의 맵핑 페이지:
이전 페이지에서, 네임스페이스에서 패키지로의 맵핑을
사용자 정의를 선택한 경우, 이 페이지에서 추가를
클릭하여 사용자 정의 맵핑 쌍을 입력할 수 있습니다.
또는 가져오기를 클릭하여 .properties 파일에서
사용자 정의 맵핑 쌍을 가져올 수 있습니다. 특성 파일의 컨텐츠는
namespace=package 형식이어야 합니다. 특성 파일에서는 일부 특수 문자를 이스케이프 처리해야
합니다. 예를 들어, http://someNamespace=somePackage를
http\://someNamespace=somePackage와 같이 처리해야 합니다. 이렇게 하지 않으면
콜론(:)이 분리 문자로 처리되어 http에서
//someNamespace=somePackage로 맵핑을 시도합니다.
Java에서의 특성 파일 형식에 대한 자세한 정보는
Java 플랫폼 API 문서: java.util.Properties 로드 메소드를 참조하십시오.
- 웹 서비스 클라이언트 테스트 페이지: 이 페이지에서는 다음과 같은 옵션을
선택할 수 있습니다.
- 테스트 기능을 선택하십시오. 생성된 프록시를 유니버셜 테스트 클라이언트 또는 웹 서비스 탐색기에서 테스트하거나,
샘플 웹 서비스 JSP를 생성할 수 있습니다. TCP/IP 모니터를 통해 웹 서비스 트래픽을 라우팅하는 경우, 유니버셜 테스트 클라이언트를 사용하여
웹 서비스를 테스트할 수 없다는 점을 참고하십시오.
- JSP를 통해 프록시를 테스트하도록 선택한 경우
JSP가 위치할 폴더를 선택할 수 있으며 JSP에 포함시킬 메소드를
선택할 수 있습니다.
- 웹 서비스 공개 페이지: 이 웹 서비스를 UDDI 레지스트리에 공개할지 여부를 선택하십시오.
완료를 클릭하십시오.
결과
웹 서비스를 작성한 후에 선택한 옵션에 따라 다음이 발생할 수 있습니다.
- 웹 서비스 샘플 JSP를 사용하여 생성된 프록시를 테스트하도록 선택하면, 웹 브라우저에 프록시가
http://localhost:port/WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp와 같은
URL로 시작됩니다. 이 샘플 애플리케이션에서 메소드를 선택하고 메소드 값을 입력한 다음 호출을 클릭하여
웹 서비스를 테스트할 수 있습니다.
메소드 결과가 결과 분할창에 표시됩니다.
- 유니버셜 테스트 클라이언트를 사용하여 생성된 프록시를
테스트하도록 선택한 경우, 브라우저 창의
http://localhost:9080/UTC/preload?object=BeanPackage.BeanServiceProxy URL에서 유니버셜 테스트 클라이언트가 실행됩니다.
참조 분할창의 오브젝트 참조에서 프록시 스텁을 펼쳐
웹 서비스 메소드를 표시하십시오. 테스트하려는 메소드를 클릭하고 매개변수 분할창에 값을 입력한
다음 호출을 클릭하십시오. 결과가 아래 생성됩니다.
- 웹 서비스 탐색기를 사용하여 웹 서비스를 테스트하도록 선택한 경우 탐색기가 열립니다. 테스트하려는 오퍼레이션을 선택하고
필수 정보를 입력한 다음 이동을 클릭하십시오. 결과가 상태 분할창에 표시됩니다.
- 웹 서비스를 공개하도록 선택한 경우 웹 서비스 탐색기가 실행되고 웹 서비스를
IBM® UDDI Test Registry에 공개하는 데 필요한 페이지가
표시됩니다. 이 태스크를 완료하려면 웹 서비스 공개의 지시사항에
따라 수행하십시오.
EJB에 대한 자세한 정보는 EJB 애플리케이션
개발 문서를 참조하십시오.
다음에 수행할 작업
중요: WSDL 파일에서
스켈레톤 EJB를 작성할 경우, 새로 작성된 EJB에 대한 JNDI 이름은 생성되지
않습니다. 이 EJB를 단위 테스트 환경에서 실행하면
콘솔에서 "EJB의 JNDI 이름을 찾을 수 없습니다. 홈 인터페이스 기반에 대한 기본 바인딩 이름이 사용됩니다"라는 경고가
WSVR0038I 코드와 함께
표시됩니다. 이 오류는 웹 서비스에 영향을 주지 않습니다. 이 문제를 방지하려면 J2EE 도구를 사용하여
EJB에 JNDI 이름을 지정하십시오.