Java API para RPC com base em XML (JAX-RPC)

Esta regra sinaliza o uso de quaisquer arquivos de configuração e pacotes específicos do JAX-RPC. Além disso, esta regra sinalizará qualquer uso da tag jaxrpc-mapping-file nos arquivos de Mapeamento XML. A tabela a seguir lista os pacotes Java, arquivos de configuração e arquivos de mapeamento XML impactados por esta regra:

Pacotes

Arquivos de Configuração

Arquivos de Mapeamento 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

Este aplicativo não foi validado para uso com a ferramenta de conversão JAX-RPC. Use o scanner binário mais recente ou coletor de dados Transformation Advisor para obter a análise de pré-validação da ferramenta de conversão JAX-RPC.

A Java API for XML-based RPC (JAX-RPC) não é suportada no Liberty ou no Liberty Core. A tecnologia foi descontinuada no WebSphere Application Server tradicional V9.0 e poderá ser removida em uma versão mais recente. Se o seu aplicativo usar JAX-RPC, o caminho de migração preferencial será usar JAX-WS, mas aqui estão as alternativas:

A tabela a seguir compara as quatro opções de acordo com os fatores que podem afetar seu projeto.

Fatores do Projeto

Opção 1

Migrar serviços da web JAX-RPC para serviços da web JAX-WS usando a ferramenta de conversão JAX-RPC

Opção 2

Migrar os serviços da web JAX-RPC para os serviços da web JAX-WS manualmente

Opção 3

Usando o mecanismo JAX-RPC do Apache Axis 1 no Liberty

Opção 4

Usando o WebSphere Application Server tradicional com seu mecanismo JAX-RPC nativo

Solução Suportada

Sim

O JAX-WS é suportado como um recurso configurável em todas as edições Liberty, exceto o Liberty Core. Faça download da ferramenta de conversão JAX-RPC do WebSphere Liberty para Maven e Gradle.

Sim

O JAX-WS é suportado como um recurso configurável em todas as edições Liberty, exceto o Liberty Core.

Não

O Axis 1 não é suportado.

Sim

O JAX-RPC é suportado no WebSphere Application Server tradicional.

Solução Estratégica

Sim

O JAX-WS é estratégico para todas as edições Liberty, exceto Liberty Core.

Sim

O JAX-WS é estratégico para todas as edições Liberty, exceto Liberty Core.

Não

O Axis 1 não está mais em desenvolvimento.

Não

JAX-RPC foi descontinuado no WebSphere Application Server tradicional e poderá ser removido em uma versão mais recente.

Complexidade de implementação

Baixa

Se o aplicativo atender aos requisitos da ferramenta de conversão JAX-RPC, os serviços JAX-RPC podem ser convertidos em serviços da web JAX-WS pela ferramenta.

Alta

Esta opção pode ser complexa para um grande número de clientes e serviços da web JAX-RPC. Sem usar a ferramenta de conversão JAX-RPC para portar serviços JAX-RPC para JAX-WS, muitas mudanças na base de código são necessárias.

Baixa

Se o aplicativo já estiver usando o Axis 1, essa opção não será complexa. Caso contrário, essa opção será de complexidade média.

Média

Migrar os serviços da web JAX-RPC para um mecanismo diferente preserva a maioria do código-base.

Recursos avançados

Sim

JAX-WS fornece vários recursos avançados, como Anotações, Ligação JAXB e SOAP 1.2.

Sim

JAX-WS fornece vários recursos avançados, como Anotações, Ligação JAXB e SOAP 1.2.

Não

O JAX-RPC não possui muitos dos recursos avançados contidos no JAX-WS.

Não

O JAX-RPC não possui muitos dos recursos avançados contidos no JAX-WS.

Conformidade de especificação

Sim

Sim

Sim

Embora o JAX-RPC ainda faça parte da especificação Java EE, ele está descontinuado no Java EE 6.

Sim

Embora o JAX-RPC ainda faça parte da especificação Java EE, ele está descontinuado no Java EE 6.

Recomendação

Use esta opção se o aplicativo atender aos requisitos da ferramenta de conversão JAX-RPC.

Use esta opção se você tiver alguns serviços da web JAX-RPC e o aplicativo não atender aos requisitos da ferramenta de conversão JAX-RPC.

Use essa opção se seus serviços da web JAX-RPC já são executados no Axis 1.

Use essa opção se seus serviços da web JAX-RPC já estiverem em execução no WebSphere Application Server tradicional ou se você tiver muitos serviços da web JAX-RPC que ainda não estão em execução no Axis 1.

Migrar serviços da web JAX-RPC para serviços da web JAX-WS usando a ferramenta de conversão JAX-RPC

Faça download da ferramenta de conversão JAX-RPC da ferramenta de conversão JAX-RPC do WebSphere Liberty para Maven e Gradle.

Para obter informações sobre a migração de aplicativos do JAX-RPC para o JAX-WS usando a ferramenta de conversão JAX-RPC, consulte Migrando aplicativos do JAX-RPC para o Liberty usando o Maven ou Migrando aplicativos do JAX-RPC para o Liberty usando o Gradle na documentação on-line.

Migrar os serviços da web JAX-RPC para os serviços da web JAX-WS manualmente

Para obter informações sobre a migração de aplicativos do JAX-RPC para o JAX-WS, consulte Cenários de migração de serviços da web: JAX-RPC para JAX-WS e JAXB na documentação on-line.

Para obter mais informações sobre as diferenças entre o JAX-RPC e o JAX-WS, consulte Modelo de implementação de aplicativos JAX-WS.

Usando o mecanismo JAX-RPC do Apache Axis 1 no Liberty

Se você já usa o Axis 1, para usá-lo no Liberty, deve-se incluir as bibliotecas do Axis 1 no caminho da classe do Liberty.

Se você usar um JAX-RPC integrado, será possível converter seus serviços da web para usar o Axis 1. O procedimento a seguir descreve como migrar um serviço web a partir do Red Hat para o Axis 1.

  1. Faça download das bibliotecas do Axis 1.0 no website do Apache.
    Nota: o Axis 2.0 usa o JAX-WS e não suporta serviços da web JAX-RPC.
  2. Inclua as bibliotecas do Axis no caminho da classe. É possível incluir as bibliotecas no caminho da classe do servidor ou no diretório WEB-INF/lib do aplicativo.
  3. Remova a referência ao serviço da web a partir do arquivo web.xml.
  4. Inclua os servlets Axis Admin no arquivo web.xml. Para obter exemplos do arquivo web.xml, consulte Instalação avançada: incluindo o Axis em seu próprio Webapp no website do Apache.
  5. Gere os serviços da web novamente por meio do arquivo WSDL usando o comando a seguir:

       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>

    Para obter mais informações sobre este comando, consulte Referência do WSDL2Java no website do Apache.

  6. Crie um descritor de implementação do Axis criando um arquivo XML chamado server-config.wsdd no diretório WEB-INF.

    Para obter mais informações sobre elementos de configuração do WSDD, consulte Referência de implementação (WSDD) no website do Apache.

  7. Modifique o código do cliente para ajustar o novo ambiente. Como o servidor não é usado como um contêiner, as referências JNDI não podem ser usadas. As referências JNDI devem ser removidas e substituídas por referências diretas à URL.

    Por exemplo, o método a seguir possui uma consulta do 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();
    }

    A consulta deve ser substituída:

    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;

    }

Usar o WebSphere Application Server tradicional com seu mecanismo JAX-RPC nativo

Se você deseja usar o mecanismo JAX-RPC do WebSphere Application Server, deve-se usar o WebSphere Application Server tradicional. O Liberty não suporta JAX-RPC. Se você deseja usar o Liberty, deve-se escolher uma das outras opções.

Somente configuração

Se arquivos de configuração do JAX-RPC forem detectados, mas não houver nenhum uso detectado da API Java JAX-RPC dentro desse aplicativo, os arquivos de configuração poderão ser de um uso anterior da tecnologia JAX-RPC que não é mais necessário. A configuração não utilizada pode ser removida.