Exemplos avançados de cliente de serviços web do Java Apache Axis2

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • Exemplos que mostram como construir e usar um cliente Axis2 para consumir um ServiceNow Serviço Web.

    O Axis é essencialmente um mecanismo SOAP - uma estrutura para construir processadores SOAP, como clientes, servidores ou gateways. A versão atual do Axis foi escrita em Java. Este conteúdo é destinado a administradores de sistema com experiência leve em desenvolvimento em Java. Para começar, você precisa do Java JDK versão 1.4.2 ou superior e do Axis2 versão 1.0 ou superior.

    Criar um projeto Java

    Este exemplo usa o SDK do Eclipse versão: 3.4.2 para gerenciar o código de origem e executar a solicitação da web. O Eclipse não é necessário.
    • Abra o Eclipse e selecione no menu Arquivo > Novo(a) > Projeto > Projeto Java.
    • Dê um nome ao projeto.
    • Verifique se o JRE correto está especificado.
      • Se estiver usando wsdl2java, execute "java -version" na linha de comando e esta será a versão a ser especificada para o JRE específico do projeto.
      • Se estiver usando o plug-in Axis2 Codegen, use o JRE padrão.
        Figura 1. Projeto Java

    Gerar seu código de cliente Axis2

    • Em uma linha de comando no diretório bin da pasta do eixo:
      ./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/
      
    • No exemplo acima:
      • O "-uri" é o caminho em que você salvou uma cópia do wsdl em ".wsdl" ou ".xml" ou o URL em que o WSDL reside.
      • O "-o" é o caminho em que você deseja que os arquivos sejam gravados. Se não for especificado, os arquivos serão gravados no local do compartimento atual.
    • No Eclipse, atualize o projeto e o esboço gerado e o CallbackHandler agora devem ser exibidos
      Figura 2. Eixo de Eixo

    Autenticação básica

    HttpTransportProperties.Authenticator basicAuthentication  = new HttpTransportProperties. Authenticator ( ) ;
    basicAuthentication. setUsername ( "admin" ) ;
    basicAuthentication. setPassword ( "admin" ) ;
    ...
     ServiceNowStub proxy  = new ServiceNowStub ( ) ;
    ...
     
     proxy._getServiceClient ( ). getOptions ( ). setProperty (org. apache. axis2. transport. http. HTTPConstants. AUTHENTICATE, basicAuthentication ) ;

    Compatibilidade com Axis2 versões 1.1 e superior

    O suporte a blocos só está disponível no HTTP versão 1.1. Por padrão, a divisão em blocos está habilitada em Axis2.xml para versões 1.1 e superiores. ServiceNow não é compatível com blocos, portanto, você precisará desabilitar o bloco no momento da implantação ou no tempo de execução.
    • Tempo de implantação: é possível desabilitar a fragmentação de HTTP removendo ou comentando o seguinte elemento de Axis2.xml
      <parameter name= "Transfer-Encoding" >chunked</parameter>
    • Tempo de execução: o usuário pode desabilitar o agrupamento usando o seguinte conjunto de propriedades no Cliente ou no Estoque, somente versões 1.1.1 e superiores
      options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED,  Boolean. FALSE ) ;

    Criação de pacotes exclusivos

    Você pode usar o parâmetro namespace2package do Axis2 (ns2p) para criar nomes de pacote exclusivos. O parâmetro usa este formato :
    <Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p <namespace>=<package name> -uri <wsdl to convert>
    Por exemplo:
    <Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p http://www.service-now.com/change_request=my.change_request -uri change_request