JAX-WS에서 웹 서비스 애플리케이션 구현
기존 JavaBeans 또는 엔터프라이즈 Bean에서 시작하는 경우 JAX-WS(Java™ API for XML-Based Web Services) 프로그래밍 모델에 기반하여 웹 서비스 개발에 대한 상향식 접근 방식을 사용할 수 있습니다.
시작하기 전에
기존의 JavaBeans 또는 JAX-WS 웹 서비스로 게시할 엔터프라이즈 Bean을 판별하십시오.
이 태스크 정보
JAX-WS 프로그래밍 모델에 기반하여 웹 서비스를 개발하려는 경우 기존 JavaBeans 또는 엔터프라이즈 Bean에서 시작하여 상향식 개발 접근 방식을 사용하거나 기존 WSDL(Web Services Description Language) 파일에서 시작하여 하향식 개발 접근 방식을 사용할 수 있습니다. 이 태스크에서는 상향식 개발 접근 방식을 사용할 때 단계에 대해 설명합니다.
기존 JavaBeans이나 엔터프라이즈 Bean에서 JAX-WS 웹 서비스 개발을 시작하는 경우 어노테이션을 사용하여 JAX-WS 웹 서비스로 Bean을 표시할 수 있습니다. Bean에 @WebService 또는 @WebServiceProvider 어노테이션을 추가하면 JAX-WS 웹 서비스로 Bean을 정의합니다. JAX-WS 웹 서비스는 선택적으로 서비스 엔드포인트 인터페이스를 사용할 수 있습니다. Bean 및 선택적 서비스 엔드포인트 인터페이스의 어노테이션 작성 외에도 웹 서비스에 필요한 아티팩트를 모두 어셈블하고, 결과로 생성된 애플리케이션을 애플리케이션 서버 환경에 배치하여 Bean을 웹 서비스로 사용하는 프로세스를 완료해야 합니다. WSDL 파일의 사용이 우수 사례로 간주되지만, JAX-WS 웹 서비스에서 WSDL 파일을 패키지하지 않아도 됩니다.
- JavaBeans 사용 시 고려사항
- JAX-WS 웹 서비스로 표시되는 JavaBeans는 HTTP 전송에서만 지원됩니다.
- JavaBeans는 CDI(Contexts and Dependency Injection)를 사용할 수 있습니다. 생성자 인젝션은 지원되지 않습니다.
- 엔터프라이즈 Bean 사용 시 고려사항
- 엔터프라이즈 Bean은 Stateless 또는 싱글톤 세션 Bean이어야 합니다.
- JAX-WS 웹 서비스로 표시되는 엔터프라이즈 Bean은 EJB 3.0 이상 모듈로 패키지되어야 합니다.
- 엔터프라이즈 Bean을 포함하는 JAX-WS 애플리케이션은 endptEnabler 명령으로 배치되어야 합니다.
- 엔터프라이즈 Bean을 포함하는 JAX-WS 웹 서비스는 HTTP 또는 JMS(Java Message Service) 전송에서 지원됩니다.
- 엔터프라이즈 Bean은 CDI를 사용할 수 있습니다. 생성자 인젝션은 지원되지 않습니다.
- 선택적으로 JAX-WS 애플리케이션 패키지에 WSDL(Web Services Description Language) 문서를 포함할 수 있습니다.
WebSphere Application Server 버전 7.0 이상을 시작하면 JAX-WS 서비스와 클라이언트를 식별하기 위한 어노테이션을 찾기 위해 Java EE 5 애플리케이션 모듈(웹 애플리케이션 모듈 버전 2.5 이상 또는 EJB 모듈 버전 3.0 이상)을 스캔합니다. 하지만 Java EE 5 이전 애플리케이션 모듈(웹 애플리케이션 모듈 버전 2.4 이하 또는 EJB 모듈 버전 2.1 이하)에서는 성능을 고려하여 기본적으로 JAX-WS 어노테이션을 스캔하지 않습니다. 버전 6.1 Feature Pack for Web Services의 경우 기본적으로 애플리케이션을 설치하는 동안 Java EE 5 이전 웹 애플리케이션 모듈을 스캔하여 JAX-WS 서비스를 식별하고 서비스 클라이언트용 Java EE 5 이전 웹 애플리케이션 모듈 및 EJB 모듈을 스캔합니다. WebSphere Application Server 버전 7.0 이상에서의 기본 동작은 애플리케이션 설치 또는 서버 시작 중에 어노테이션을 찾기 위해 Java EE 5 이전 모듈을 스캔하지 않고 이전 릴리스 기능팩과의 역방향 호환성을 유지하는 것이기 때문에 애플리케이션 설치 및 서버 시작 중에 스캐닝을 요청하려면 EJB 모듈 또는 WAR(Web Application Archive) 파일의 META-INF/MANIFEST.MF에서 UseWSFEP61ScanPolicy 특성을 구성하거나 JVM(Java Virtual Machine) 사용자 정의 특성(com.ibm.websphere.webservices.UseWSFEP61ScanPolicy)을 서버에서 정의해야 합니다. 어노테이션 스캐닝에 대해 보다 자세히 학습하려면 JAX-WS 어노테이션 정보를 참조하십시오.
프로시저
결과
JAX-WS 애플리케이션을 배치합니다.