JAX-RPC - JAX-RPC 변환 도구의 유효한 후보가 아닙니다.

이 규칙은 JAX-RPC 특정 패키지 및 구성 파일의 사용을 플래그 지정합니다. 또한 이 규칙은 XML 맵핑 파일에서 jaxrpc-mapping-file 태그의 사용을 플래그 지정합니다. 다음 표는 이 규칙에 해당하는 Java 패키지, 구성 파일 및 XML 맵핑 파일을 나열합니다.

패키지

구성 파일

XML 맵핑 파일

  • javax.xml.rpc
  • javax.xml.rpc.encoding
  • javax.xml.rpc.handler
  • javax.xml.rpc.handler.soap
  • javax.xml.rpc.holders
  • javax.xml.rpc.server
  • javax.xml.rpc.soap
  • ibm-webservices-ext.xmi
  • ibm-webservices-bnd.xmi
  • ibm-webservicesclient-ext.xmi
  • ibm-webservicesclient-bnd.xmi
  • ws-security.xml
  • webservices.xml
  • web.xml
  • ejb-jar.xml
  • ibm-webservicesclient-bnd.xmi
  • application.xml

이 규칙은 JAX-RPC 변환 도구에서 유효성 검사를 실행하고 이 스캔에서 JAX-RPC 웹 서비스가 JAX-RPC 변환 도구를 사용하여 2진 "JAX-WS로 변환"에 적합한 후보로 결정되지 않았습니다.

JAX-RPC(Java API for XML-based RPC)는 Liberty 또는 Liberty Core에서 지원되지 않습니다. 기술이 WebSphere Application Server traditional V9.0에서 더 이상 사용되지 않으며 향후 버전에서 제거될 수 있습니다. 애플리케이션이 JAX-RPC를 사용하는 경우 전략적 마이그레이션 경로는 JAX-WS를 사용하는 것이지만 대안은 다음과 같습니다.

다음 표에서는 프로젝트에 영향을 줄 수 있는 요인에 따라 네 가지 옵션을 비교합니다.

프로젝트 요소

옵션 1

수동으로 JAX-RPC 웹 서비스를 JAX-WS 웹 서비스로 마이그레이션

옵션 2

Liberty에서 Apache Axis 1 JAX-RPC 엔진 사용

옵션 3

WebSphere Application Server traditional에 기본 JAX-RPC 엔진 사용

지원되는 솔루션

JAX-WS는 Liberty Core를 제외한 모든 Liberty 에디션에서 구성 가능한 기능 으로 지원됩니다.

아니오

Axis 1이 지원되지 않습니다.

JAX-RPC는 WebSphere Application Server traditional에서 지원됩니다.

전략적 솔루션

JAX-WS는 Liberty Core를 제외한 모든 Liberty 에디션에 대해 전략적입니다.

아니오

Axis 1의 추가 개발이 없습니다.

아니오

JAX-RPC는 WebSphere Application Server traditional에서 더 이상 사용되지 않으며 향후 버전에서 제거될 수 있습니다.

구현 복잡도

높음

이 옵션은 다수의 JAX-RPC 클라이언트 및 웹 서비스의 경우 복잡할 수 있습니다. JAX-RPC 서비스 를 JAX-WS로 이식하기 위해 JAX-RPC 변환 도구를 사용하지 않으면 코드 베이스에 대한 많은 변경이 필요합니다.

낮음

애플리케이션이 이미 Axis 1을 사용 중인 경우 이 옵션은 복잡하지 않습니다. 그렇지 않으면 이 옵션은 복잡도가 중간입니다.

중간

대부분의 코드 베이스를 보존하는 다른 엔진에 JAX-RPC 웹 서비스를 마이그레이션합니다.

고급 기능

JAX-WS는 여러 고급 기능(어노테이션, JAXB 바인딩 및 SOAP 1.2)을 제공합니다.

아니오

JAX-RPC에는 JAX-WS의 여러 고급 기능이 없습니다.

아니오

JAX-RPC에는 JAX-WS의 여러 고급 기능이 없습니다.

스펙 준수

JAX-RPC는 여전히 Java EE 스펙의 일부이지만 Java EE 6에서는 더 이상 사용되지 않습니다.

JAX-RPC는 여전히 Java EE 스펙의 일부이지만 Java EE 6에서는 더 이상 사용되지 않습니다.

권장사항

JAX-RPC 웹 서비스가 적고 애플리케이션이 JAX-RPC 변환 도구의 요구사항을 충족하지 않는 경우 이 옵션을 사용하십시오.

JAX-RPC 웹 서비스가 이미 Axis 1에서 실행되는 경우 이 옵션을 사용하십시오.

JAX-RPC 웹 서비스가 이미 WebSphere Application Server traditional에서 실행되었거나 다수의 JAX-RPC 웹 서비스가 아직 Axis 1에서 실행되지 않은 경우 이 옵션을 사용하십시오.

수동으로 JAX-RPC 웹 서비스를 JAX-WS 웹 서비스로 마이그레이션

JAX-RPC에서 JAX-WS로 애플리케이션을 마이그레이션하는 방법에 대한 정보는 온라인 문서의 웹 서비스 마이그레이션 시나리오: JAX-RPC에서 JAX-WS 및 JAXB로 를 참조하십시오.

JAX-RPC와 JAX-WS간 차이점에 대한 자세한 정보는 JAX-WS 애플리케이션 배치 모델의 내용을 참조하십시오.

Liberty에서 Apache Axis 1 JAX-RPC 엔진 사용

Axis 1을 이미 사용하는 경우 Liberty에서 이를 사용하려면 Axis 1 라이브러리를 Liberty 클래스 경로에 포함시켜야 합니다.

임베디드 JAX-RPC를 사용하는 경우 Axis 1을 사용하도록 웹 서비스를 변환할 수 있습니다. 다음 프로시저는 웹 서비스를 Red Hat JBoss에서 Axis 1로 마이그레이션하는 방법을 설명합니다.

  1. Apache 웹 사이트에서 Axis 1.0라이브러리를 다운로드하십시오.
    참고: Axis 2.0에서는 JAX-WS를 사용하고 JAX-RPC 웹 서비스를 지원하지 않습니다.
  2. 클래스 경로에서 Axis 라이브러리를 포함하십시오. 서버 클래스 경로 또는 애플리케이션의 WEB-INF/lib 디렉토리에서 라이브러리를 포함할 수 있습니다.
  3. web.xml 파일에서 웹 서비스에 대한 참조를 제거하십시오.
  4. Axis 관리 서블릿을 web.xml 파일에 추가하십시오. web.xml 파일의 예제를 보려면 Apache 웹 사이트의 고급 설치: 자체 웹 애플리케이션에 Axis 추가를 참조하십시오.
  5. 다음 명령을 사용하여 WSDL 파일에서 웹 서비스를 다시 생성하십시오.

       java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t    java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t -s -o <Output directory> <WSDL file>

    이 명령에 대한 자세한 정보는 Apache 웹 사이트의 WSDL2Java 참조를 참조하십시오.

  6. WEB-INF 디렉토리에서 server-config.wsdd라는 XML 파일을 작성하여 Axis 배치 디스크립터를 작성하십시오.

    WSDD 구성 요소에 대한 자세한 정보는 Apache 웹 사이트의 배치(WSDD) 참조를 참조하십시오.

  7. 새 환경에 맞도록 클라이언트 코드를 수정하십시오. 서버가 컨테이너로 사용되지 않으므로 JNDI 참조를 사용할 수 없습니다. JNDI 참조를 제거하고 URL에 대한 직접 참조로 바꿔야 합니다.

    예를 들어, 다음 메소드에는 JNDI 검색이 있습니다.


    public DemoType getService() throws Exception {

    javax.naming.InitialContext ctx = new javax.naming.InitialContext();

    DemoService service = (DemoService)ctx.lookup("java:comp/env/service/Demo");

    return service.getDemoService();
    }

    검색을 바꿔야 합니다.

    private com.ibm.demo.webservices.server.DemoType getService() throws Exception {

    com.ibm.demo.webservices.server.DemoService_ServiceLocator service = new com.ibm.demo.webservices.server.DemoService_ServiceLocator();

    com.ibm.demo.webservices.server.DemoType demoType = service.getDemoService();

    return demoType;

    }

WebSphere Application Server traditional에 기본 JAX-RPC 엔진 사용

WebSphere Application Server JAX-RPC 엔진을 사용하려는 경우 WebSphere Application Server traditional을 사용해야 합니다. Liberty는 JAX-RPC를 지원하지 않습니다. Liberty를 사용하려는 경우 기타 옵션 중 하나를 선택해야 합니다.

구성 전용

JAX-RPC 구성 파일을 찾았지만 이 애플리케이션에서 JAX-RPC Java API 사용이 감지되지 않는 경우 구성 파일이 더 이상 필요하지 않은 이전 JAX-RPC 기술 사용으로부터 온 것일 수 있습니다. 사용되지 않는 구성은 제거할 수 있습니다.