JAX-RPC 웹 서비스 클라이언트 구현
Java™ EE(Java Platform, Enterprise Edition) 스펙 및 JAX-RPC(Java API for XML-based RPC) 프로그래밍 모델에 대한 웹 서비스에 기반하여 웹 서비스 클라이언트를 개발할 수 있습니다.
시작하기 전에

이 태스크 정보
- JAX-RPC 프로그래밍 모델에 기반하여 웹 서비스 클라이언트 개발
웹 서비스 클라이언트 프로그래밍 모델에서는 Java EE 환경에서 웹 서비스에 액세스하는 경우 관련 가이드라인을 제공합니다. Java EE(Java Platform, Enterprise Edition) 스펙 및 JAX-RPC(Java API for XML-based remote procedure call) 스펙에 대한 웹 서비스에 기반하여 웹 서비스 클라이언트를 개발할 수 있습니다. 애플리케이션 서버는 JAX-RPC 프로그래밍 모델에 기반하는 EJB(JavaBeans) 클라이언트, Java EE 애플리케이션 클라이언트, JSP(JavaServer Pages) 파일 및 서블릿을 지원합니다.
- 관리 및 비관리 JAX-RPC 웹 서비스 클라이언트
애플리케이션 서버는 JAX-RPC 프로그래밍 모델을 사용할 때 관리 및 비관리 웹 서비스 클라이언트 모두를 지원합니다.
- 관리 클라이언트
Java EE용 웹 서비스 클라이언트는 JSR(Java Specification Requirements) 109에 의해 정의되며 Java EE 컨테이너에서 실행되므로 관리 클라이언트입니다. 이 클라이언트는 엔터프라이즈 아카이브(EAR) 파일로 패키지되며 서비스 요청자 역할을 하는 컴포넌트를 포함합니다. 이 컴포넌트는 Java EE 클라이언트 애플리케이션, 서블릿 또는 JSP(JavaServer Pages)와 같은 웹 컴포넌트 또는 세션 EJB(Enterprise JavaBeans)로 구성됩니다. 웹 서비스 관리 클라이언트는 JSR 109 API 및 배치 정보를 사용하여 웹 서비스를 검색 및 호출합니다.
관리 클라이언트의 경우 서비스 검색은 JNDI(Java Naming and Directory Interface) 검색을 통해 수행됩니다. UserName 토큰 웹 서비스 보안, 디지털 서명 웹 서비스 보안, LTPA(Lightweight Third-Party Authentication) 토큰 웹 서비스 보안 설정을 참조하십시오. 다음 코드는 JSR 109를 준수하는 컨텍스트 검색 예제입니다.
InitialContext ctx = new InitialContext(); FredsBankServiceLocator locator =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService"); FredsBank fb = locator.getFredsBank(url); long balance = fb.getBalance();
관리 클라이언트에 대한 컨텍스트 검색을 인스턴스화하는 경우 서비스 위치 지정자에 대해 new() 메소드를 사용하지 마십시오. 다음은 JSR 109를 준수하지 않는 예제입니다(새 ServiceLocator).
Properties prop = new Properties(); InitialContext ctx = new InitialContext(prop); FredsBankServiceLocator locator = new FredsBankServiceLocator(); FredsBank fb = locator.getFredsBank(url); long balance = fb.getBalance();
lookup() 호출이 없으면 클라이언트에는 배치 디스크립터에 대한 액세스 권한이 없습니다. JAX-RPC 웹 서비스의 경우 웹 서비스 보안 구성은 웹 서비스 배치 디스크립터에 있습니다.
- 비관리 클라이언트
JAX-RPC 런타임 환경을 사용하여 웹 서비스를 호출하고 Java EE 컨테이너에서 실행되지 않는 Java SE 6(Java Platform, Standard Edition) 클라이언트를 비관리 클라이언트라고도 합니다. 웹 서비스 비관리 클라이언트는 독립형 Java 클라이언트로, WSDL 파일을 직접 검사하고 직접 JAX-RPC API를 사용하여 웹 서비스에 대한 호출을 공식화할 수 있습니다. 이 클라이언트는 JAR 파일로 패키지되며, 배치 정보를 포함하지 않습니다.
Java 애플리케이션이 웹 서비스 클라이언트 역할을 수행하려면 WSDL 파일 및 Java 애플리케이션 사이의 맵핑이 존재해야 합니다. JAX-RPC 웹 서비스의 경우 JAX-RPC 스펙에서 맵핑을 정의합니다. Java 컴포넌트를 사용하여 WSDL 파일에서 컴포넌트 인터페이스 및 바인딩 정보를 지정하고 서비스 요청을 승인하도록 애플리케이션 서버 인프라를 디자인하여 웹 서비스를 구현할 수 있습니다. 이 전체 프로세스는 Java EE용 웹 서비스 스펙에 기반합니다. JAX-RPC 스펙은 WSDL 파일, Java 코드, XML 스키마 유형 사이의 맵핑을 정의합니다.
- 관리 클라이언트
프로시저
결과
웹 서비스 클라이언트 애플리케이션을 작성 및 테스트합니다.
다음에 수행할 작업
웹 서비스 애플리케이션 클라이언트를 개발하고 클라이언트가 정적으로 바인드된 경우 구현에서 사용하는 서비스 엔드포인트는 개발 프로세스 중에 사용한 WSDL 파일에서 식별된 항목입니다. 웹 서비스 애플리케이션 설치 중 또는 이후에 서비스 엔드포인트를 변경할 수 있습니다. 관리 클라이언트의 경우 관리 콘솔 또는 wsadmin 스크립트 도구를 사용하여 엔드포인트를 변경할 수 있습니다.
웹 서비스 클라이언트에 대한 확장을 구현하여 웹 서비스 사용자 정의를 추가로 고려할 수 있습니다. 이러한 확장의 몇 가지 예로는, SOAP 헤더에서 값의 전송 및 수신, HTTP나 JMS 전송 헤더의 전송 또는 수신 또는 사용자 정의 바인딩 사용이 포함됩니다. 이 확장에 대해 자세히 학습하려면 웹 서비스 클라이언트에 대한 확장 구현을 참조하십시오.