Exemplos avançados de cliente de serviços web do Java Apache Axis2
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 .
- 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