JAX-RPC 웹 서비스 핸들러 작성

핸들러를 사용하면 네트워크를 통한 메시지 전송 전후에 SOAP 메시지를 처리할 수 있습니다. 일반적으로 SOAP 헤더 컨텐츠를 처리하는 데 사용됩니다. 헤더 스펙은 JAX-RPC 및 JSR 109로 정의됩니다. 웹 서비스 및 웹 서비스 클라이언트에 대한 핸들러를 구성할 수 있습니다.

시작하기 전에

배치된 웹 서비스의 경우, webservice.xml 배치 디스크립터 파일에 핸들러가 추가될 수 있습니다. J2EE 1.3 웹 서비스 클라이언트의 경우, webservicesclient.xml에 핸들러가 추가됩니다. J2EE 1.4 웹 서비스 클라이언트의 경우, 핸들러가 각 클라이언트의 배치 디스크립터에 추가될 수 있습니다(서블릿 및 JSP에는 WEB-INF/web.xml, EJB에는 META-INF/ejb-jar.xml, 애플리케이션 클라이언트에는 META-INF/application-client.xml). 핸들러 마법사는 WebSphere® 런타임 환경을 사용하는 웹 서비스에만 적용됩니다.

이 태스크 정보

웹 서비스 또는 클라이언트를 작성한 후에는 다음을 수행하여 핸들러를 구성하십시오.

프로시저

  1. Java™ EE 퍼스펙티브에서 JSR-109 웹 서비스를 펼친 후, 해당되는 웹 서비스(복수 선택 가능)를 마우스 오른쪽 단추로 클릭하고 웹 서비스 > 핸들러 구성을 선택하십시오.
  2. 새 핸들러를 추가하려면 핸들러 구성 절에서 추가를 클릭하십시오.
    1. 클래스 이름을 입력하거나 사용 가능한 클래스를 찾아보십시오. 이름은 자동으로 입력됩니다. 존재하지 않는 클래스 이름을 입력할 경우 새 핸들러에 대한 스켈레톤 클래스 생성이 선택되어 있으면 클래스가 자동으로 작성됩니다.
    2. 핸들러를 적용할 수 있는 포트가 두 개 이상 있는 경우 올바른 포트를 선택하십시오. 여러 웹 서비스에 대한 핸들러를 동시에 작성할 때는 이 옵션이 제공되지 않음을 참고하십시오.
    3. 확인을 클릭하십시오.
  3. 필요한 핸들러를 목록에 모두 추가한 다음, 마법사에 나열된 핸들러의 순서를 변경하여 처리 순서를 바꿀 수 있습니다. 완료를 클릭하십시오.

다음에 수행할 작업

마법사에서 스켈레톤 핸들러가 작성되면 핸들러 구현이 Java 편집기에서 자동으로 열립니다. 마법사로 여러 개의 핸들러를 작성한 경우 첫 번째 핸들러만 Java 편집기에서 열립니다.

새 핸들러를 추가한 후에는 배치 디스크립터 편집기 또는 웹 서비스 편집기에서 구성을 편집할 수 있습니다. 이를 수행하려면, 웹 서비스 또는 클라이언트 배치 디스크립터를 두 번 클릭하고 WS 핸들러 또는 핸들러 탭을 선택하십시오. Java 편집기에서 핸들러 구현 자체를 편집할 수도 있습니다.

제한사항:
  • 핸들러 구성 마법사에서 핸들러를 추가할 때, 핸들러 Java 파일이 정확히 같은 위치에 이미 존재하고 "로드 가능한 Java 클래스를 겹쳐쓰지 않습니다."를 선택하지 않은 경우에도 마법사가 새로운 스켈레톤 핸들러 Java 파일을 프로젝트의 기본 소스 폴더에 생성하는 문제점이 있습니다. 마법사는 EAR의 다른 위치에 동일한 이름(완전한 이름)의 핸들러가 이미 존재하는지 검사하지 않습니다. 따라서 마법사를 사용하여 EAR의 특정 위치(예: 프로젝트 내의 다른 소스 폴더 또는 EAR 내의 다른 모듈)에 이미 존재하는 핸들러를 추가하면 마법사가 새 스켈레톤 핸들러를 작성하며 이 핸들러가 원래의 핸들러 클래스를 대체합니다. 이 경우, 마법사에서 생성된 스켈레톤 핸들러를 삭제하십시오.
  • 변경사항을 저장하지 않은 J2EE 배치 디스크립터 편집기를 열어 둔 채로 핸들러 구성 마법사를 실행하여 동일한 디스크립터에 핸들러를 추가하면 마법사가 올바르게 완료되지만 편집기 세션에 보류되어 있는 변경사항을 저장할 수 없게 됩니다. 저장을 시도하면 편집기에서 "파일이 수정되었습니다."라는 메시지가 표시됩니다. 핸들러 구성 마법사를 사용하여 J2EE 배치 디스크립터 파일(webservices.xml, webservicesclient.xml, web-inf.xml, ejb-jar.xml 또는 application-client.xml)에서 핸들러를 사용하기 전에 해당 디스크립터 파일이 편집기에서 열려 있으면 편집기를 모두 종료하십시오.

피드백