Exemplos de cliente de serviços web Java Apache Axis2 avançados
Exemplos que mostram como construir e usar um cliente Axis2 para consumir um ServiceNow Serviço Web.
Essencialmente, o Axis é um mecanismo SOAP -- uma estrutura para a construção de processadores SOAP, como clientes, servidores ou gateways. A versão atual do Axis é escrita em Java. Este conteúdo é destinado a administradores de sistema com um plano de fundo de desenvolvimento leve em Java. Para começar, você precisaria do Java JDK versão 1.4.2 ou superior e do Axis2 versão 1,0 ou superior.
Crie um projeto Java
Este exemplo usa a versão do SDK do Eclipse: 3.4.2 para gerenciar o código-fonte e executar a solicitação da web. O Eclipse não é necessário.
- Abra o Eclipse e, no menu, selecione .
- 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
Gere seu código de cliente do 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 caminho no qual 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 Stub gerado e o CallbackHandler agora devem ser exibidos
Figura 2. Stub do 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 superiores
O suporte a blocos só está disponível no HTTP versão 1,1. Por padrão, o agrupamento está habilitado no axis2.xml para as versões 1,1 e posteriores. ServiceNow Não é compatível com Chunking, portanto, você precisará desabilitar o bloco no momento da implantação ou no tempo de execução.
- Tempo de implantação: É possível desabilitar o agrupamento 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 a seguinte propriedade definida no Client ou Stub, somente nas versões 1.1.1 e superior
options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED, Boolean. FALSE ) ;
Criando pacotes exclusivos
Você pode usar o parâmetro Axis2 namespace2package (ns2p) para criar nomes de pacote exclusivos. O parâmetro usa isso 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