Interfejs JAX-RPC (Java API for XML-based RPC)

Dzięki tej regule oznaczane jest użycie określonych pakietów i plików konfiguracyjnych JAX-RPC. Oznaczane jest także każde użycie znacznika jaxrpc-mapping-file w plikach odwzorowania XML. W poniższej tabeli znajduje się lista pakietów Java, plików konfiguracyjnych i plików odwzorowań XML, na które ma wpływ ta reguła:

Pakiety

Pliki konfiguracyjne

Pliki odwzorowań 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

Nie sprawdzono poprawności tej aplikacji pod kątem jej użytkowania z narzędziem do konwersji JAX-RPC. Użyj najnowszego skanera binarnego lub modułu gromadzącego dane produktu Transformation Advisor, aby uzyskać analizę przed sprawdzeniem poprawności narzędzia do konwersji JAX-RPC.

Interfejs JAX-RPC (Java API for XML-based RPC) nie jest obsługiwany na serwerze Liberty ani Liberty Core. Ta technologia jest oznaczona jako nieaktualna na serwerze WebSphere Application Server traditional 9.0 i może zostać usunięta w późniejszej wersji. Jeśli aplikacja używa interfejsu JAX-RPC, preferowaną ścieżką migracji jest użycie interfejsu JAX-WS, ale są dostępne następujące alternatywy:

Poniższa tabela zawiera porównanie czterech opcji w zależności od czynników, które mogą mieć wpływ na projekt użytkownika.

Czynniki projektu

Opcja 1

Migracja usług WWW JAX-RPC do usług WWW JAX-WS przy użyciu narzędzia do konwersji JAX-RPC

Opcja 2

Ręczne migrowanie usług WWW JAX-RPC do usług WWW JAX-WS

Opcja 3

Korzystanie z mechanizmu JAX-RPC Apache Axis 1 na serwerze Liberty

Opcja 4

Korzystanie z serwera WebSphere Application Server traditional z jego własnym mechanizmem JAX-RPC

Obsługiwane rozwiązanie

Tak

Interfejs JAX-WS jest obsługiwany jako konfigurowalna opcja we wszystkich edycjach Liberty z wyjątkiem Liberty Core. Pobierz narzędzie do migracji JAX-RPC serwera WebSphere Liberty dla produktów Maven i Gradle.

Tak

Interfejs JAX-WS jest obsługiwany jako konfigurowalna opcja we wszystkich edycjach Liberty z wyjątkiem Liberty Core.

Nie

Mechanizm Axis 1 nie jest obsługiwany.

Tak

Interfejs JAX-RPC jest obsługiwany na serwerze WebSphere Application Server traditional.

Rozwiązanie strategiczne

Tak

Interfejs JAX-WS jest strategiczny dla wszystkich edycji Liberty z wyjątkiem Liberty Core.

Tak

Interfejs JAX-WS jest strategiczny dla wszystkich edycji Liberty z wyjątkiem Liberty Core.

Nie

Mechanizm Axis 1 nie jest już dłużej rozwijany.

Nie

Interfejs JAX-RPC jest oznaczony jako nieaktualny na serwerze WebSphere Application Server traditional i może zostać usunięty w późniejszej wersji.

Złożoność implementacji

Niska

Jeśli aplikacja spełnia wymagania narzędzia do konwersji JAX-RPC, usługi JAX-RPC mogą być przekształcane w usługi WWW JAX-WS przez to narzędzie.

Wysoka

Ta opcja może mieć wysoką złożoność w przypadku dużej liczby klientów JAX-RPC oraz usług WWW. Bez użycia narzędzia do konwersji JAX-RPC do przeniesienia usług JAX-RPC do JAX-WS konieczne będzie wprowadzenie wielu zmian w kodzie bazowym.

Niska

Jeśli aplikacja używa już mechanizmu Axis 1, ta opcja ma niską złożoność. W przeciwnym razie złożoność tej opcji jest średnia.

Średnia

Migracja usług WWW interfejsu JAX-RPC do innego mechanizmu umożliwia zachowanie większości kodu.

Funkcje zaawansowane

Tak

Interfejs JAX-WS udostępnia wiele zaawansowanych funkcji, takich jak adnotacje, powiązania JAXB czy SOAP 1.2.

Tak

Interfejs JAX-WS udostępnia wiele zaawansowanych funkcji, takich jak adnotacje, powiązania JAXB czy SOAP 1.2.

Nie

Interfejs JAX-RPC nie ma wielu zaawansowanych funkcji dostępnych w interfejsie JAX-WS.

Nie

Interfejs JAX-RPC nie ma wielu zaawansowanych funkcji dostępnych w interfejsie JAX-WS.

Zgodność ze specyfikacją

Tak

Tak

Tak

Mimo tego, że interfejs JAX-RPC jest częścią specyfikacji Java EE, jest on oznaczony jako nieaktualny w środowisku Java EE 6.

Tak

Mimo tego, że interfejs JAX-RPC jest częścią specyfikacji Java EE, jest on oznaczony jako nieaktualny w środowisku Java EE 6.

Zalecenie

Tej opcji należy użyć, jeśli aplikacja spełnia wymagania narzędzia do konwersji JAX-RPC.

Tej opcji należy użyć, jeśli istnieje kilka usług WWW JAX-RPC, a aplikacja nie spełnia wymagań narzędzia do konwersji JAX-RPC.

Należy użyć tej opcji, jeśli usługi WWW interfejsu JAX-RPC działają już w ramach mechanizmu Axis 1.

Należy użyć tej opcji, jeśli usługi WWW interfejsu JAX-RPC działają już na serwerze WebSphere Application Server traditional lub w przypadku wielu usług WWW interfejsu JAX-RPC, które jeszcze nie działają w ramach mechanizmu Axis 1.

Migracja usług WWW JAX-RPC do usług WWW JAX-WS przy użyciu narzędzia do konwersji JAX-RPC

Pobierz narzędzie do konwersji JAX-RPC ze strony Narzędzie do konwersji JAX-RPC serwera WebSphere Liberty dla produktów Maven i Gradle.

Informacje o migrowaniu aplikacji z interfejsu JAX-RPC do interfejsu JAX-WS przy użyciu narzędzia do konwersji JAX-RPC można znaleźć w sekcji dokumentacji elektronicznej Migrowanie aplikacji JAX-RPC na serwer Liberty przy użyciu produktu Maven lub Migrowanie aplikacji JAX-RPC na serwer Liberty przy użyciu produktu Gradle.

Ręczne migrowanie usług WWW JAX-RPC do usług WWW JAX-WS

Informacje na temat migrowania aplikacji z interfejsu JAX-RPC do JAX-WS zawiera sekcja Scenariusze migracji usług WWW: JAX-RPC do JAX-WS i JAXB w dokumentacji elektronicznej.

Więcej informacji na temat różnic między interfejsami JAX-RPC i JAX-WS zawiera sekcja Model wdrażania aplikacji JAX-WS.

Korzystanie z mechanizmu JAX-RPC Apache Axis 1 na serwerze Liberty

Jeśli mechanizm Axis 1 jest już używany, korzystanie z niego na serwerze Liberty wymaga dołączenia bibliotek mechanizmu Axis 1 do ścieżki klas serwera Liberty.

Jeśli używany jest osadzony interfejs JAX-RPC, można przekształcić usługi WWW w taki sposób, aby korzystały z komponentu Axis 1. Poniższa procedura opisuje sposób migracji usługi WWW z Red Hat JBoss do Axis 1.

  1. Pobierz biblioteki Axis 1.0 z serwisu WWW Apache.
    Uwaga: mechanizm Axis 2.0 używa interfejsu JAX-WS i nie obsługuje usług WWW interfejsu JAX-RPC.
  2. Dołącz biblioteki mechanizmu Axis do ścieżki klas. Biblioteki można dołączyć za pomocą ścieżki klas serwera lub katalogu WEB-INF/lib aplikacji.
  3. Usuń odwołanie do usługi WWW z pliku web.xml.
  4. Dodaj serwlety administracyjne mechanizmu Axis do pliku web.xml. Przykładowe pliki web.xml można znaleźć w sekcji Instalacja zaawansowana: dodawanie bibliotek Axis do własnych aplikacji WWW w serwisie WWW Apache.
  5. Wygeneruj ponownie usługi WWW z pliku WSDL za pomocą następującej komendy:

       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>

    Więcej informacji na temat tej komendy można znaleźć w sekcji Informacje dodatkowe o WSDL2Java w serwisie WWW Apache.

  6. Utwórz deskryptor wdrażania mechanizmu Axis, tworząc plik XML o nazwie server-config.wsdd w katalogu WEB-INF.

    Więcej informacji na temat elementów konfiguracji WSDD można znaleźć w sekcji Informacje dodatkowe dotyczące wdrażania (WSDD) w serwisie WWW Apache.

  7. Zmodyfikuj kod klienta, tak aby dopasować go do nowego środowiska. Ponieważ serwer nie jest używany jako kontener, nie można użyć odwołań do interfejsu JNDI. Odwołania do interfejsu JNDI należy usunąć i zastąpić bezpośrednimi odwołaniami do adresu URL.

    Na przykład następująca metoda zawiera wyszukiwanie 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();
    }

    Wyszukiwanie należy zastąpić w następujący sposób:

    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;

    }

Korzystanie z serwera WebSphere Application Server traditional z jego własnym mechanizmem JAX-RPC

Jeśli ma być używany mechanizm JAX-RPC serwera WebSphere Application Server, należy użyć serwera WebSphere Application Server traditional. Serwer Liberty nie obsługuje interfejsu JAX-RPC. Jeśli ma być używany serwer Liberty, należy wybrać jedną z pozostałych opcji.

Tylko konfiguracja

Jeśli wykrywane są pliki konfiguracyjne JAX-RPC, ale w ramach tej samej aplikacji nie jest wykrywane użycie interfejsu API Java JAX-RPC, to być może pliki konfiguracyjne pochodzą z poprzedniego użycia technologii JAX-RPC i nie są już potrzebne. Nieużywaną konfigurację można usunąć.