JAX-RPC - Candidato valido per lo strumento di conversione JAX-RPC

La convalida dallo strumento di conversione JAX-RPC ha stabilito che nessun servizio Web JAX-RPC in questa scansione è un buon candidato per la conversione binaria a JAX-WS tramite lo strumento di conversione JAX-RPC. Questa regola contrassegna l'utilizzo di qualsiasi package specifico e file di configurazione JAX-RPC. Inoltre, questa regola contrassegnerà qualsiasi utilizzo della tag jaxrpc-mapping-file nei file di associazione XML. La seguente tabella elenca i pacchetti Java, i file di configurazione e i file di associazione XML influenzati da questa regola:

Pacchetti

File di configurazione

File di associazione 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 (Java API for XML-based RPC) non è supportata in Liberty o Liberty Core. La tecnologia è obsoleta in WebSphere Application Server tradizionale V9.0 e potrebbe essere rimossa in una successiva versione. Il percorso di migrazione strategica consiste nell'utilizzare JAX-WS. L'impegno relativo cambierà in base al percorso di migrazione prescelto:

La seguente tabella confronta le quattro opzioni in base ai fattori che potrebbero avere effetti sul progetto.

Fattori del progetto

Opzione 1

Migrare i servizi web JAX-RPC ai servizi web JAX-WS utilizzando lo strumento di conversione JAX-RPC

Opzione 2

Migrare i servizi web JAX-RPC ai servizi web JAX-WS manualmente

Opzione 3

Utilizzo del motore Apache Axis 1 JAX-RPC motore su Liberty

Opzione 4

Utilizzo di WebSphere Application Server tradizionale con il motore JAX-RPC nativo

Soluzione supportata

JAX-WS è supportato come funzione configurabile su tutte le edizioni Liberty tranne Liberty Core. Scaricare lo strumento di conversione JAX-RPC di WebSphere Liberty per Maven e Gradle.

JAX-WS è supportato come funzione configurabile su tutte le edizioni Liberty tranne Liberty Core.

No

Axis 1 non è supportato.

JAX-RPC è supportato su WebSphere Application Server tradizionale.

Soluzione strategica

JAX-WS è strategico per tutte le edizioni Liberty tranne Liberty Core.

JAX-WS è strategico per tutte le edizioni Liberty tranne Liberty Core.

No

Axis 1 non è più distribuito.

No

JAX-RPC è obsoleta in WebSphere Application Server tradizionale e potrebbe essere rimossa in una successiva versione.

Livello di complessità dell'implementazione

Basso

L'applicazione è stata convalidata per l'utilizzo con lo strumento di conversione JAX-RPC. I servizi JAX-RPC possono essere convertiti in servizi Web JAX-WS dallo strumento.

Alto

Questa opzione può rivelarsi complessa per molti client JAX-RPC e servizi web. Senza utilizzare lo strumento di conversione JAX-RPC per trasferire i servizi JAX-RPC in JAX-WS, è necessario apportare molte modifiche al codice di base.

Basso

Se l'applicazione utilizza già Axis 1, questa opzione non è complessa. Altrimenti è da considerare di media complessità.

Medio

La migrazione dei servizi Web JAX-RPC ad un motore diverso conserva la maggior parte del codice di base.

Funzioni avanzate

JAX-WS fornisce diverse funzioni avanzate quali le annotazioni, il bind JAXB e SOAP 1.2.

JAX-WS fornisce diverse funzioni avanzate quali le annotazioni, il bind JAXB e SOAP 1.2.

No

JAX-RPC non ha molte delle funzioni avanzate presenti in JAX-WS.

No

JAX-RPC non ha molte delle funzioni avanzate presenti in JAX-WS.

Conformità delle specifiche

Sebbene JAX-RPC sia ancora parte della specifica Java EE, viene considerata obsoleta a partire da Java EE 6.

Sebbene JAX-RPC sia ancora parte della specifica Java EE, viene considerata obsoleta a partire da Java EE 6.

Suggerimento

Utilizzare questa opzione se l'applicazione soddisfa i requisiti dello strumento di conversione JAX-RPC.

Utilizzare questa opzione se si dispone di pochi servizi web JAX-RPC e l'applicazione non soddisfa i requisiti dello strumento di conversione JAX-RPC.

Utilizzare questa opzione se i servizi web JAX-RPC vengono già eseguiti su Axis 1.

Utilizzare questa opzione se i servizi web JAX-RPC sono già in esecuzione su WebSphere Application Server tradizionale o se vi sono molti servizi web JAX-RPC che non sono in esecuzione su Axis 1.

Migrare i servizi web JAX-RPC ai servizi web JAX-WS utilizzando lo strumento di conversione JAX-RPC

Scaricare lo strumento di conversione JAX-RPC dallo strumento di conversione JAX-RPC di WebSphere Liberty per Maven e Gradle.

Per informazioni sulla migrazione delle applicazioni da JAX-RPC a JAX-WS utilizzando lo strumento di conversione, consultare Migrazione delle applicazioni JAX-RPC in Liberty utilizzando Maven o Migrazione delle applicazioni JAX-RPC in Liberty utilizzando Gradle nella documentazione online.

Migrare i servizi web JAX-RPC ai servizi web JAX-WS manualmente

Per informazioni sulla migrazione delle applicazioni da JAX-RPC a JAX-WS, consultare Scenari di migrazione dei servizi Web: da JAX-RPC a JAX-WS e JAXB nella documentazione online.

Per ulteriori informazioni sulle differenze tra JAX-RPC e JAX-WS, consultare Modello di distribuzione delle applicazioni JAX-WS.

Utilizzo del motore Apache Axis 1 JAX-RPC motore su Liberty

Se si utilizza già Axis 1, per utilizzarlo su Liberty è necessario includere le librerie Axis 1 nel classpath di Liberty.

Se si utilizza un JAX-RPC incorporato, è possibile convertire i servizi web per utilizzare Axis 1. La seguente procedura descrive come migrare un servizio web da Red Hat JBoss a Axis 1.

  1. Scaricare le librerie Axis 1.0 dal sito Web Apache.
    Nota: AXIX 2.0 utilizza JAX-WS e non supporta i servizi web JAX-RPC.
  2. Includere le librerie AXIS nel classpath. È possibile includere le librerie nel classpath del server o nella directory WEB-INF/lib dell'applicazione.
  3. Rimuovere i riferimenti al servizio web dal file web.xml.
  4. Aggiungere i servlet Axis Admin nel file web.xml. Per esempi del file web.xml, consultare Installazione avanzata: aggiunta di Axis alla propria Webapp sul sito web Apache.
  5. Rigenerare i servizi web dal file WSDL utilizzando il seguente comando:

       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>

    Per ulteriori informazioni su questo comando, consultare Riferimento a WSDL2Java sul sito web Apache.

  6. Creare un descrittore di distribuzione Axis creando un file XML denominato server-config.wsdd nella directory WEB-INF.

    Per ulteriori informazioni sugli elementi di configurazione WSDD, consultare Riferimento di distribuzione (WSDD) sul sito web Apache.

  7. Modificare il codice del client in modo da adattarlo al nuovo ambiente. Poiché il server non viene utilizzato come un contenitore, non è possibile utilizzare i riferimenti JNDI. È necessario rimuovere i riferimenti JNDI e sostituirli con riferimenti diretti all'URL.

    Ad esempio, il seguente metodo ha una ricerca 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();
    }

    La ricerca deve essere sostituita:

    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;

    }

Utilizzare WebSphere Application Server tradizionale con il motore JAX-RPC nativo

Se si desidera utilizzare il motore JAX-RPC di WebSphere Application Server, occorre utilizzare WebSphere Application Server tradizionale. Liberty non supporta JAX-RPC. Se si desidera utilizzare Liberty, è necessario scegliere una delle altre opzioni.

Solo configurazione

Se vengono rilevati file di configurazione JAX-RPC, ma allo stesso tempo non viene rilevato alcun utilizzo dell'API Java JAX-RPC all'interno di questa applicazione, i file di configurazione potrebbero provenire da un precedente utilizzo della tecnologia JAX-RPC che non è più necessaria. La configurazione inutilizzata può essere rimossa.