웹 서비스 마법사는 기존의 WSDL 문서에서
스켈레톤 Bean을 작성하는 단계를 지원합니다. 스켈레톤 Bean에는
WSDL 문서에서 설명한 오퍼레이션에 해당하는 메소드 세트가 포함됩니다. Bean이 작성될 때 각 메소드에는 Bean을 편집하여
바꾸는 소규모의 구현이 있습니다.
시작하기 전에
전제조건:
- WebSphere® Application Server를 사용하는 경우
컴퓨터 속도에 따라 시작하는 시간이 달라질 수 있으므로, 웹 서비스 마법사를 실행하기 전에
WebSphere Application Server를 시작하는 것이
좋습니다.
서버를 시작하려면
서버 보기에서 서버를 선택하고(창 > 보기 표시 > 서버) 마우스 오른쪽 단추를
클릭한 다음 시작을 선택하십시오.
- WSDL 문서를 작성 또는 발견한 다음 프로젝트로 가져오십시오. 서비스 요소가 포함된 WSDL 파일만 사용할 수 있습니다.
참고: JMS 웹 서비스 상의
SOAP는 WebSphere Application Server V8.0 이상에는 지원됩니다.
그러나 WebSphere Application Server Liberty Profile
V8.5.5에서는 지원되지 않습니다. JMS를 통한 SOAP를 사용하려면 WSDL 파일이 다음 전송 속성 URI 값 중 하나를 사용해야 합니다.
- http://www.w3.org/TR/soapjms/
- http://www.w3.org/2010/soapjms/
WSDL 파일의 JMS를 통한 SOAP 선언에 대한 자세한 정보는
Java™ Message Service 1.0을 통한 SOAP 작업 초안에 있는 스펙을 참조하십시오.
- EJB 프로젝트를 작성하여 새 EAR 프로젝트에 추가하십시오.
- 사용 중인 전송 방법이 HTTP를 통한 SOAP인 경우 비어 있는
웹 프로젝트를 작성하십시오. 전송 방법으로 JMS를 통한 SOAP를
사용 중인 경우에는 라우터 프로젝트 역할을 수행할 EJB 프로젝트를 작성하십시오. 작성한
프로젝트는 엔터프라이즈 Bean이 포함된 EJB 프로젝트와 동일한
EAR에 추가해야 합니다. 라우터 모듈에 대한 자세한 정보는
라우터 모듈 작성을
참조하십시오.
- JMS를 통한 SOAP를 사용하려는 경우 JMS를 통한 SOAP를
사용하는 서버 및 서버 구성 작성의 설명에 따라 JMS를 사용하는 서버 및 서버 구성을
작성해야 합니다.
이 태스크 정보
WebSphere JAX-WS 런타임 환경을
사용하여 WSDL 문서에서 스켈레톤 Java Bean을
작성하려면 다음을 수행하십시오.
프로시저
- Java EE
퍼스펙티브(창 > 퍼스펙티브 열기 > Java EE)로 전환하십시오.
- 엔터프라이즈 탐색기 보기에서 작성했거나 가져온 WSDL 파일을 선택하십시오.
- 파일 > 새로 작성 > 기타를 클릭하십시오. 다양한 웹 서비스 마법사를 표시하려면
웹 서비스를 선택하십시오. 웹 서비스 마법사를 선택하십시오.
다음을 클릭하십시오.
- 웹 서비스 페이지: 하향식 EJB 웹 서비스를
웹 서비스 유형으로 선택하십시오. 다음을 수행하도록 선택할 수도 있습니다.
- 슬라이더를 사용하여 완료할 웹 서비스 개발 단계를 선택하십시오. 이를 수행하면 나머지 마법사 패널에
다음과 같은 여러 기본값이 설정됩니다.
- 개발: 이 단계에서는 웹 서비스의 WSDL 정의 및 구현을 개발합니다. 여기에는 생성된 코드, WSDL 파일, 배치 디스크립터 및
Java 파일이 있는 경우 이를 포함하는
모듈 작성과 같은 태스크가 포함됩니다.
- 어셈블: 이 단계에서는 웹 서비스 또는 클라이언트를 호스팅하는 프로젝트가 대상 애플리케이션 서버에서 필요할
때 EAR에 연관시킵니다.
- 배치: 이 단계에서는 서비스 배치 코드를 작성합니다.
- 설치: 이 단계에서는 대상 서버에 웹 모듈 및 EAR을 설치하고 구성합니다. WSDL 파일의 엔드포인트를 변경해야 하는 경우 이 단계에서 변경합니다.
- 시작: 이 단계에서는 서비스를 서버에 설치하면 서버를 시작합니다.
- 테스트: 이 단계에서는 일반 서비스 클라이언트, 웹 서비스 탐색기
또는 샘플 JSP 등 서비스 테스트에 사용할 수 있는 다양한 옵션을
제공합니다.
- 서버 선택: 기본 서버가 표시됩니다. 다른 서버에 서비스를 배치하려면 서버 링크를 클릭하여 다른 서버를
지정하십시오.
- 런타임 선택: 기본 런타임이 표시됩니다. 서비스를 IBM® JAX-WS
런타임에 배치하려면 런타임 링크를 클릭하고 열린 창에서 이를 선택하십시오.
이 태스크는
다음 서버 런타임 환경을 지원합니다.
- WebSphere Application
Server V7.0 이상
- WebSphere Application
Server Liberty Profile V8.5.5
- 서비스 프로젝트 선택: 작업공간에서 선택한 프로젝트가 표시됩니다. EJB 프로젝트만 지원됩니다. 다른 프로젝트 및
EAR을 선택하려면 프로젝트 링크를 클릭하거나 이름을 입력하여 마법사가
프로젝트를 작성할 수 있게 하십시오. 클라이언트 웹 프로젝트로 선택한 프로젝트가 서비스 웹 프로젝트와 다른지 또는 클라이언트에서 생성된 아티팩트가
서비스를 겹쳐쓰는지 확인하십시오. JAX-WS 웹 서비스의 경우 서버와 클라이언트 프로젝트가 동일한 EAR을 공유할 수 있습니다.
- 클라이언트를 작성하려면 생성하려는 프록시 유형을 선택하고 클라이언트에 대해
단계를 반복하십시오. 클라이언트는 IBM WebSphere JAX-WS 런타임 환경을 사용하여 WSDL 문서에서 웹 서비스 클라이언트 생성에서 설명된 단계에 따라 이후에 작성할 수 있습니다.
- 웹 서비스 모니터: 이 단계에서는 웹 서비스에서 생성된 SOAP 트래픽을 관찰하고 WS-I 준수를 확인하기 위해 이 트래픽을
테스트할 수 있는 TCP/IP 모니터를 통해 웹 서비스 트래픽을 송신합니다. 또는
웹 서비스 테스트를 위한 TCP/IP 모니터 사용에
설명된 대로 TCP/IP 모니터를 수동으로 설정할 수 있습니다.
- 웹 서비스를 공개하십시오.
- WebSphere JAX-WS 하향식 EJB 웹 서비스 구성 페이지:
- 출력 폴더: 생성된 EJB 스켈레톤이 생성될 위치를 입력하거나
기본값을 허용하십시오.
- 대상 패키지: 생성된 Java의 패키지 이름을
입력하거나 기본값을 허용하십시오.
- EJB 웹 서비스 바인딩: 웹 서비스에서 HTTP 또는 JMS
바인딩을 사용할 것인지 선택하십시오.
- 랩퍼 스타일 사용: WSDL에서 Java로의
랩퍼 스타일 맵핑을 사용합니다. 문서/리터럴 랩핑 패턴을 구현하는 WSDL 문서의 경우,
루트 요소가 XML 스키마에 선언되며 메시지 플로우에 대한 오퍼레이션 랩퍼로
사용됩니다. 요청 및 응답에 대해 별도의 랩퍼 요소 정의가 존재합니다. 더 단순하게,
오퍼레이션과 이름이 동일한 요소(랩퍼 요소)는 분리되어
각 컨텐츠 요소는 생성된 Java 메소드 시그니처의
매개변수가 됩니다.
- MTOM 지원 사용: 이 선택란을 선택하면 SOAP MTOM(Message Transmission Optimization Mechanism)이 2진 컨텐츠
전송을 최적화하는 데 사용됩니다. MTOM에 대한 자세한 정보는
MTOM 개요를 참조하십시오.
- 생성될 JAX-WS 코드의 버전: WebSphere Application Server V7.0에서는
JAX-WS 2.0 또는 2.1 호환 코드를 지원합니다. WebSphere Application
Server V8.0, V8.5 및 WebSphere(r) Application
Server Liberty Profile V8.5.5는 JAX-WS 2.0, 2.1 또는 2.2 호환 코드를 지원합니다.
- WSDL을 프로젝트에 복사: WSDL 파일을 서비스 프로젝트에 복사하려면
이 옵션을 선택하십시오. 그렇지 않으면 필수 WSDL이 필요할 때 런타임에 의해
동적으로 생성됩니다. 이는 이후에 클라이언트를 작성하거나 다른 사용자를 위해 WSDL을 공개하려는 경우에 유용하게 사용됩니다.
- 직렬화 가능 JAXB 클래스 생성: WebSphere Application Server 및
WebSphere(r) Application Server
Liberty Profile V8.5.5에서 Java 6 패싯을 사용하도록 설정하면 java.io.Serializable을 구현하는
JAXB 클래스를 생성하도록 선택할 수 있습니다. 이 인터페이스를 구현하지 않는 클래스는 직렬화되거나 역직렬화된 상태를 가지지 않습니다.
- JAX-WS 또는 JAXB 바인딩 파일 지정: JAX-WS 또는 JAXB 사용자 정의 바인딩 파일을 작성하는 경우에 이 웹 서비스를 작성하도록 사용하려면 이 선택란을 선택하십시오. 이를 선택하면 마법사의 다음 페이지에서
사용자 정의 바인딩 선언 파일을 찾을 수 있습니다.
- 서비스 구현 클래스 이름 사용자 정의: 기본 포트 이름을 서비스 구현 클래스 이름 맵핑으로 변경하려면 이
선택란을 선택하십시오.
- 스키마 라이브러리 생성: 이 옵션을 사용하면 스키마 코드를 스키마 라이브러리에
생성할 수 있습니다. 스키마 라이브러리를 선택하면 이후 페이지에서 XSD 문서 또는
XSD 문서 그룹과 프로젝트 간 맵핑을 사용자 정의할 수 있습니다.
- 웹 서비스 배치 디스크립터 생성: JAX-WS의 경우 웹 서비스 배치 정보는 런타임에 의해
동적으로 생성되므로 정적 배치 디스크립터는 더 이상 필요하지 않습니다. 이 선택란를 선택하면
배치 디스크립터가 생성됩니다.
- 벤더 확장기능 허용: 이 선택란을 선택하는 경우
-extension 옵션이 wsgen 또는 wsimport 명령에 추가됩니다.
-extension 옵션은 JAX-WS 사양에서 지정하지 않은 기능을
사용자 정의 확장기능으로
사용 또는 허용하는지 여부를 지정합니다.
확장기능의 사용으로 응용프로그램이 이식
불가능하거나 다른 구현과 상호 운영되지 않을 수 있습니다. 자세한 내용을 보려면
WebSphere Application Server의 Information Center에서 찾을 수 있는 JAX-WS 애플리케이션의 wsgen 명령 및 JAX-WS 애플리케이션의 wsimport 명령 주제를 참조하십시오.
- 이전 페이지에서 선택한 옵션에 따라 다음 페이지에서 웹 서비스 구현을
사용자 정의하도록 프롬프트될 수 있습니다.
- WebSphere JAX-WS
JMS 바인딩 구성 페이지: 웹 서비스에서 JMS를 해당 전송 방법으로 사용하도록 선택한 경우
이 페이지에 바인딩에 대한 정보를 입력해야 합니다.
- JMS 대상: 큐 또는 주제를 대상 유형으로 선택하십시오.
- 대상 JNDI 이름: 대상 큐 또는 주제의 JNDI 이름입니다.
- JMS 연결 팩토리: 연결 팩토리의 JNDI 이름입니다.
- 초기 컨텍스트 팩토리 이름: 사용할 초기 컨텍스트 팩토리의
이름입니다. 이는 java.naming.factory.initial 특성으로 맵핑됩니다.
- JNDI 제공자 URL: 이는 java.naming.provider.url 특성으로 맵핑됩니다.
- 전달 모드: 요청 메시지가 지속적이어야 하는지 여부를 나타냅니다.
- 요청 메시지 수명: 요청 메시지의 수명(밀리초)입니다. 0 값은 무한 수명을 나타냅니다.
- JMS 요청 메시지 우선순위: 요청 메시지와 연관된 JMS 우선순위입니다.
0은 최하위 우선순위이고 9는 최상위 우선순위입니다.
- 이름에 응답: 요청이 디스패치되는 포트 컴포넌트의 이름입니다.
- 연결 팩토리 사용자 ID: 연결 팩토리에 액세스할 때 사용되는 사용자 ID입니다.
- 연결 팩토리 비밀번호: 연결 팩토리에 액세스할 때 사용되는
비밀번호입니다.
- SOAP/JMS 상호 운용성 프로토콜 사용: 이를 선택하면 웹 서비스가 W3C SOAP-JMS 바인딩 작업 그룹에서
아웃라인된 프로토콜을 준수하게 됩니다.
자세한 정보는 SOAP-JMS 바인딩 작업 그룹 헌장 사이트를 참조하십시오.
- 사용자 정의 JMS 특성 정의: 이를 선택하면 특성 값 쌍을 입력할 수 있는 페이지가 실행됩니다.
- 바인딩 선언 사용자 정의 페이지: JAX-WS 또는 JAXB 바인딩 파일을 지정하도록 선택한 경우 이 페이지에서 파일을 찾을 수 있습니다.
- 서비스 구현 구성 페이지: WSDL 파일에 정의된 각 포트에 대해 서비스 구현 클래스 이름을 입력하거나 기본값을
허용할 수 있습니다.
- 스키마 프로젝트 구성 페이지: 스키마 라이브러리를 생성하도록 선택한 경우
이 페이지를 사용하여 XSD 문서와 프로젝트 간 맵핑을 사용자 정의하십시오. 이 기능은 모든 스키마 종속성이
다른 targetNamespaces에 있는 경우에만 작동합니다. 그렇지 않으면 ObjectFactory.java에서 컴파일 오류가 발생합니다.
- WebSphere JAX-WS
라우터 프로젝트 구성 페이지: 이 페이지는 WebSphere Application
Server 런타임 환경을 대상으로 할 경우 표시되지만 WebSphere Application Server Liberty Profile
V8.5.5에는 표시되지 않습니다.
- HTTP 라우터: 라우터 모듈로 사용할 프로젝트의 이름을 입력하십시오.
라우터 모듈에서 특정 전송을 위한 웹 서비스 엔드포인트를 제공합니다.
- JMS 라우터: 라우터 모듈로 사용할 프로젝트의 이름을 입력하십시오.
라우터 모듈에서 특정 전송을 위한 웹 서비스 엔드포인트를 제공합니다.
- MDB 배치 메커니즘: 메시지 구동 Bean 배치 메커니즘인 JMS 활성화 스펙 또는 리스너 포트에서 선택하십시오.
- ActivationSpec JNDI 이름: 이 메시지 구동 Bean을 배포하는 데 사용할 활성화 스펙의 JNDI 이름
을 입력하십시오. 이 이름은 WebSphere Application
Server에 정의하는 활성화 스펙의 이름과 일치해야 합니다.
- 리스너 입력 포트 이름: 라우터 모듈의 리스너 포트 이름을 입력하십시오.
- 웹 서비스 테스트 페이지: 4a단계에서
웹 서비스를 테스트하도록 선택한 경우, 생성된 웹 서비스를 위한 테스트 기능을 선택하고
실행을 클릭하십시오. 그러면 웹 서비스가 웹 서비스 탐색기 또는 일반 서비스 클라이언트에서
열립니다. HTTP 전송을 사용하는 웹 서비스를 테스트하려면 웹 서비스 탐색기를 사용해야 합니다. 테스트하려는 오퍼레이션을 선택하고
필수 정보를 입력한 다음 이동을 클릭하십시오. 결과가 상태 분할창에 표시됩니다. 다음을 클릭하십시오.
- WebSphere JAX-WS 웹 서비스
클라이언트 구성 페이지: 클라이언트를 생성하도록 선택한 경우 이 페이지에서 다음 옵션을 지정할 수 있습니다.
- 출력 폴더: 클라이언트 코드가 생성되는 위치입니다.
- 대상 패키지: 웹 서비스 클라이언트 마법사는 여러 개의 Java 파일을
생성합니다. 기본적으로
WSDL 파일에서 지정된 네임스페이스에 따라 패키지 이름을
작성합니다. 이 기본 동작을
재정의하기 위해 자체 패키지 이름을 지정할 수 있습니다.
- 이식 가능 클라이언트 생성: 이 선택란을 선택하면 한 시스템에서 다른 시스템으로 또는
WebSphere(r) Application Server 또는
WebSphere(r) Application
Server Liberty Profile V8.5.5의 한 인스턴스에서
다른 인스턴스로 웹 서비스 클라이언트 코드를 이동할 수 있습니다. 이 옵션이 선택되면 WSDL 문서와 이 문서가 종속된
모든 XML 스키마 및 기타 WSDL 문서가 WEB-INF/wsdl 아래의 클라이언트 프로젝트에
복사되며 이 사본을 가리키는 file:relativeURL이 JAX-WS 서비스
클래스의 정적 초기화 블록에 삽입됩니다.
- 생성된 클라이언트에 대해 비동기 호출 사용: 비동기 클라이언트를 사용 가능하게 선택한 경우,
웹 서비스의 각 메소드에 대해 두 개의 추가 메소드가 작성됩니다. 이 메소드는 클라이언트가 비동기로
기능할 수 있도록 하는 폴링 및 콜백 메소드입니다.
- JAX-WS 또는 JAXB 바인딩 파일 지정: JAX-WS 또는 JAXB 사용자 정의 바인딩 파일을 작성하는 경우에
웹 서비스 클라이언트를 작성하도록 사용하려면 이 선택란을 선택하십시오. 이를 선택하면 마법사의
다음 페이지에서 사용자 정의 바인딩 선언 파일을 찾을 수 있습니다.
- 클라이언트 프록시 클래스 이름 사용자 정의: 기본 포트 이름을 서비스 구현 클래스 이름 맵핑으로
변경하려면 이 선택란을 선택하십시오.
- 웹 서비스 배치 디스크립터 생성: JAX-WS의 경우, 웹 서비스 배치 정보는 런타임에 의해
동적으로 생성되므로 정적 배치 디스크립터는 더 이상 필요하지 않습니다. 이 선택란를 선택하면
배치 디스크립터가 생성됩니다.
- 생성될 JAX-WS 코드의 버전: WebSphere Application
Server V7.0에서는 JAX-WS 2.0 또는 2.1 호환 코드를 생성하는 옵션이 있습니다. WebSphere Application
Server V8.0, V8.5 및 WebSphere Application
Server Liberty Profile V8.5.5에서는 JAX-WS 2.0, 2.1 또는 2.2 호환 코드를 생성하는 옵션이 있습니다.
- 바인딩 선언 사용자 정의 페이지: JAX-WS 또는 JAXB 바인딩 파일을 지정하도록 선택한 경우 이 페이지에서 파일을 찾을 수 있습니다.
- 서비스 구현 구성 페이지: 프록시 생성 구성 페이지: 정의된 각 포트에 대해
프록시 클래스 이름을 입력하거나 기본값을 승인할 수 있습니다.
- 웹 서비스 클라이언트 테스트 페이지:
- 생성된 프록시 테스트: 선택한 경우 샘플 클라이언트가 웹 브라우저에서 실행되어 기능을 테스트할 수 있습니다.
- 테스트 기능을 선택하십시오. 일반 서비스 클라이언트 또는 웹 서비스 탐색기에서
생성된 프록시를 테스트할 수 있거나 샘플
JAX-WS 2.0 JSP를 생성하고 사용할 수 있습니다.
- 폴더: JSP를 통해 프록시를 테스트하도록 선택한 경우 JSP가 배치되는 폴더를 선택할 수 있고
JSP에 포함되는 메소드를 선택할 수 있습니다.
- 메소드: 표시할 메소드를 선택하십시오. 비동기 호출을 사용 가능하도록 선택하면 비동기 메소드도
나열되어야 합니다.
- 서버에서 테스트 실행: 자동으로 서버를 시작합니다.
결과
웹 서비스를 작성한 후에 선택한 옵션에 따라 다음이 발생할 수 있습니다.
- 구현 Bean이 Java 편집기에서 열립니다. 여기에는
웹 서비스의 기본 기능을 테스트하는 데 사용할 수 있는 스켈레톤 코드가 포함되거나,
이를 테스트하기 전에 서비스에 대해 필요한 비즈니스 로직을 구현할 수 있습니다.
- JAX-WS 2.0 JSP를 사용하여 생성된 프록시를 테스트하도록 선택하면, 웹 브라우저에 프록시가
http://localhost:port/WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp와 같은
URL로 시작됩니다. 이 샘플 애플리케이션에서 메소드를 선택하고 메소드 값을 입력한 다음 호출을 클릭하여
웹 서비스를 테스트할 수 있습니다.
메소드 결과가 결과 분할창에 표시됩니다. 다소간의 메소드 구현이 포함된
Java Bean이기 때문에 값으로
-3이 리턴됩니다.
- 유니버셜 테스트 클라이언트를 사용하여 생성된 프록시를 테스트하도록 선택한 경우 브라우저 창에서
http://localhost:port/UTC/preload?object=BeanPackage.BeanServiceProxy와 같은 URL과 유사하게 실행됩니다. 오브젝트에서
프록시 스텁을 펼쳐서 웹 서비스 메소드를 표시하십시오. 테스트하려는 메소드를 클릭하고 매개변수 분할창에 값을 입력한
다음 호출을 클릭하십시오. 결과가 생성됩니다.
- 웹 서비스 탐색기를 사용하여 웹 서비스를 테스트하도록 선택한 경우 탐색기가 열립니다. 테스트하려는 오퍼레이션을 선택하고
필수 정보를 입력한 다음 이동을 클릭하십시오. 결과가 상태 분할창에 표시됩니다.