JAX-WS 및 JAX-RPC에 대한 EGL 지원

JAX-WS는 SOAP 서비스 통신 및 액세스의 속도를 개선하는 Java™ EE 기술입니다. EGL을 사용하면 JAX-WS 또는 이보다 이전 기술인 JAX-RPC(Java API for XML-based RPC)를 사용하는 SOAP 서비스 및 서비스 요청자를 생성할 수 있습니다. 현재 목표는 미래의 개선사항을 통해 JAX-WS에 대한 EGL SOAP 서비스 지원이 이뤄지도록 기반을 다지는 것입니다.

JAX-WS에 의존하는 서비스 및 서비스 요청은 JAX-RPC에 의존하는 다른 로직과 상호작용할 수 있습니다. 런타임 호환성이 보장됩니다. EGL과 관련하여, JAX-WS는 이후에 코드를 SOAP 서비스로서 여러 대상 프로젝트에 배치한다고 하더라도 서비스를 한 번만 생성해도 되는 편리함을 추가로 제공합니다.

다음 제한사항이 적용됩니다.
  • JAX-WS에 대한 EGL 지원은 SOAP 서비스 또는 서비스 요청자가 JEE 버전 5를 지원하는 서버에 배치된 경우에만 사용 가능합니다. 테스트는 다음 플랫폼에서 수행되었습니다.
    • WebSphere® Application Server 7.0
    • Apache Tomcat 5.x(Java 1.6)
    • Apache Tomcat 6.x(Java 1.6)
  • JAX-WS를 사용 중인 경우에는 EGL 구조화된 레코드를 서비스와 서비스 요청자 간에 전송할 수 없습니다. JAX-RPC를 사용 중인 경우에는 구조화된 레코드를 전송할 수 있으나 요청자와 서비스가 모두 EGL 생성된 경우에는 요청자와 서비스가 모두 JAX-RPC를 사용하여 실행되어야 합니다. 구조화된 레코드에 대한 EGL 지원의 세부사항은 "서비스 파트 참조"를 참조하십시오.
  • EGL 대상 프로젝트가 서비스 또는 서비스 요청자를 포함하는 웹 프로젝트인 경우 이 프로젝트는 JAX-WS 또는 JAX-RPC 기술 중 하나만 사용할 수 있습니다. 코드를 생성하거나 대상 프로젝트에 배치할 때는 그 외의 다른 기술을 사용하는 서비스 또는 서비스 요청자에 대한 지원을 추가할 수 없습니다.

    서비스 액세스 또는 배치를 위한 Java EE 기술은 특정 대상 프로젝트의 모든 로직에서 동일해야 하지만, 액세스되는 각 원격 SOAP 서비스는 두 기술 중 하나를 사용하여 배치될 수 있다는 점을 다시 한 번 기억하십시오. 런타임 호환성이 보장됩니다.

  • 8.0.1.1 이전의 EGL 버전에서 작업했으며 인터페이스 파트, 레코드 파트 또는 서비스 스켈레톤을 자동으로 작동하기 위해 WSDL 파일을 사용한 경우에는 다음과 같은 상황에서 작성한 파트가 오류를 발생시킬 가능성이 큽니다.
    1. WSDL 파일에서 작성된 파트를 유지했습니다. 그리고
    2. 이러한 파트를 기초로 코드를 생성하거나 이 코드를 JAX-WS를 사용하도록 구성된 대상 프로젝트에 배치합니다.

    코드가 JAX-WS를 사용하여 실행될 수 있도록 8.0.1.1 이전의 EGL 버전으로 작성된 코드를 변환하려는 경우에는 해당 코드를 사용 중인 인터페이스 파트, 레코드 파트 또는 서비스 스켈레톤을 다시 작성하십시오.

    다음 경우 중 하나에 해당하면 인터페이스 파트, 레코드 파트 또는 서비스 스켈레톤을 다시 작성하지 않아도 됩니다.
    • 버전 8.0.1.1 이상에서 작성된 코드를 생성하거나 배치합니다. 또는
    • JAX-RPC도 사용할 수 있도록 구성된 대상 프로젝트에서 이전 코드를 다시 생성하거나 다시 배치합니다.
  • getContext 시스템 함수를 사용하는 코드가 있는 경우에는 JAX-RPC와 JAX-WS 사이를 전환할 때 이 코드를 변경해야 합니다. 이는 JAX-RPC와 JAX-WS에서 getContext가 리턴하는 오브젝트가 서로 다르기 때문입니다. 세부사항은 "getContext"를 참조하십시오.

대상 프로젝트가 JAX-WS 또는 JAX-RPC를 사용하도록 구성되었는지 판별하는 요소는 배치 디스크립터 편집기의 개요 탭에 있는 선택란입니다. @WebBinding을 사용하는 서비스 요청에는 이 규칙의 변형이 사용되고 있으며, 이 특성은 서비스 액세스 세부사항을 코드 로직(구체적으로는 서비스 액세스 변수의 선언)에 직접 지정할 수 있게 해 줍니다. 이러한 경우, 서비스 요청의 구성 방식을 결정하는 요소는 요청자를 생성하는 데 사용된 빌드 디스크립터에서 참조하는 배치 디스크립터에 있는 선택란의 값입니다.