Exemplos de cliente de serviços web Java Apache Axis2 avançado
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 é escrita em Java. Este conteúdo é destinado a administradores de sistema com pouca experiência em desenvolvimento 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.
Criar um projeto Java
Este exemplo usa o SDK do SDK 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 foi 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 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 na posição atual da lixeira.
- No Eclipse, atualize o projeto e o Stub e o CallbackHandler gerados agora devem ser exibidos
Figura 2. Eixo Esboço
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 está disponível somente na versão HTTP 1.1. Por padrão, o agrupamento está habilitado em Axis2.xml para versões 1.1 e superiores. ServiceNow não oferece suporte a 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 o bloco 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 a seguinte propriedade definida no cliente ou no bloco, versões 1.1.1 e superiores somente
options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED, Boolean. FALSE ) ;
Criando 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