W wyniku sprawdzania poprawności w narzędziu do konwersji JAX-RPC ustalono, że usługa WWW JAX-RPC w tym skanowaniu jest dobrym kandydatem do
konwersji binarnej na interfejs JAX-WS przy użyciu narzędzia do konwersji JAX-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 |
|---|---|---|
|
|
|
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. Strategiczną ścieżką migracji jest użycie interfejsu JAX-WS. Względny nakład pracy zostanie zmieniony na podstawie wybranej ścieżki migracji:
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 1Migrowanie usług WWW JAX-RPC do usług WWW JAX-WS przy użyciu narzędzia do konwersji JAX-RPC |
Opcja 2Ręczne migrowanie usług WWW JAX-RPC do usług WWW JAX-WS |
Opcja 3Korzystanie z mechanizmu JAX-RPC Apache Axis 1 na serwerze Liberty |
Opcja 4Korzystanie 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ż 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 Sprawdzono poprawność aplikacji pod kątem korzystania z narzędzia do konwersji JAX-RPC. Za pomocą tego narzędzia można przekształcić usługi JAX-RPC w usługi WWW JAX-WS. |
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. |
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.
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.
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.
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.
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.
Na przykład następująca metoda zawiera wyszukiwanie JNDI:
Wyszukiwanie należy zastąpić w następujący sposób:
private com.ibm.demo.webservices.server.DemoType getService() throws Exception {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.
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ąć.