Consumir webservices com Java e Axis

15 respostas
K

Olá,

Sou iniciante na linguagem, porém preciso fazer um programa complexo para quem não entende da linguagem.
Eu preciso criar um cliente em java para um webservices do Serasa Experian.

Eu consegui gerar as as classes de acesso através do Axis. Eu gostaria de saber se alguém pode me ajudar como desenvolver o programa em java que utilizam essas classes?

Segue, a URL de acesso é essa: https://gw-homologa2.serasa.com.br/wsgestordecisao/wsgestordecisao.asmx?wsdl

Agradeço desde já a atenção.

15 Respostas

A

Que IDE você está utilizando ou está mais familiarizado?

A

Oi Arménio, é um prazer? Ví seu perifl é muito inteligente…

Por favor pode me ajudar respondendo tais perguntas:

1 - request.getAttribute();

2 - forward(request, response);

3 - RequestDispatcher ds = request.getRequestDispatcher();

4 - request.getParameter

5 - HttpServletRequest ex: chamar o request.getRequestURI();

abs,
André AS

K

Olá Armênio,

Estou utilizando o Eclipse.

Obrigada.

A

Kariana,

Segue um tutorial de como fazer o consumo do Web Service. É possível que você tenha a senha para o acesso, pois caso contrário o sistema retorna um erro (o que indica que o acesso funciona).

Espero ter sido útil.

A

André,

Obrigado por suas palavras.

Por favor: você poderia abrir um outro tópico para não misturar as estações? Será um prazer respondê-lo.

G

andredecotia:
Oi Arménio, é um prazer? Ví seu perifl é muito inteligente…

Por favor pode me ajudar respondendo tais perguntas:

1 - request.getAttribute();

2 - forward(request, response);

3 - RequestDispatcher ds = request.getRequestDispatcher();

4 - request.getParameter

5 - HttpServletRequest ex: chamar o request.getRequestURI();

abs,
André AS

O que foi isso?
www.google.com.br
Você vai achar rapidinho cara.

Abraço.

Sobre os webServices um amigo uma vez me passou um site para gerar clients de wsdls

http://www.guj.com.br/posts/list/200734.java

K

Oi Armênio, funcionou perfeitamente.

Sem querer abusar, eu gostaria de perguntar mais uma coisa. Esse programa “ClienteWs.java” que irá receber os dados do webservice precisa guardar o retonor numa variável e não possuir tela. Você poderia me ajudar a alterar esse programa para tal funcionalidade?

Obrigada,
Ariana

A

Ariana,

É importante que você planeje o passo-a-passo do que precisa ser implementado. Algo como um roteiro: primeiro acesso o web service, depois pego o retorno do método X, depois gravo os dados em uma tabela etc.

Com esse roteiro bem claro, fica mais fácil desenvolver a solução.

Qual é a sua dúvida?

K

Entendi.
Bom ,resumidamente o processo é o seguinte: Eu preciso pegar o retorno do webservice através do Java e enviar para o Cobol. Essa integração pode ser feita através de xml mesmo. Se o Java gerar o retorno num XML eu consigo pegar os dados com o COBOL.
É isso…

Obrigada,

K

Oi Armênio,

Então, acho que agora minha dúvida é mais direta… Eu consegui criar um exemplo de programa COBOL acessando uma classe JAVA. Agora eu preciso que um programa COBOL acesse aquela classe que você me ensinou a gerar.
A minha dúvida é, eu estou tendo erro no COBOL na hora de acessar a classe Java. Acredito eu que seja por causa da forma com que está declarada a classe, como o Void por exemplo, acho que nao deveria estar declarado, porem quando eu altero passo a ter erro de compilação por causa do try/catch.

Tipo de classe que eu consigo acessar:

public class Soma {
    
    String Nome = "ariana";
    static int valor2;
    int valor1 = 2;
    int valor3 = valor1 + valor2;
}

A classe que eu preciso acessar, mas o COBOL não está aceitando:

package br.com.serasa;

import br.com.serasa.sitenet05.wsgestordecisao.wsgestordecisao.WsgestordecisaoLocator;
import br.com.serasa.sitenet05.wsgestordecisao.wsgestordecisao.WsgestordecisaoSoapStub;

public class Cliente 
{
    private static String retorno;
	public static void main(String[] args)
	{
		try {
			 WsgestordecisaoLocator locator = new WsgestordecisaoLocator();
			 WsgestordecisaoSoapStub cliente = (WsgestordecisaoSoapStub)locator.getwsgestordecisaoSoap();
			 
//			 retorno = cliente.retornoLote("1", "1");
			 //System.out.println("retorno: " + retorno);
		    }				
        catch (Exception e) 
            {
        	 e.printStackTrace();
            }
    }	
}

Você saberia me dizer, o que eu devo alterar e porque?
Como eu te disse, não conheço muito da linguagem e se puder ajudar, agradeço.
Obrigada,

K

Alguém?

A

Ariana,

Experimente o seguinte:

package br.com.serasa;

import br.com.serasa.sitenet05.wsgestordecisao.wsgestordecisao.WsgestordecisaoLocator;
import br.com.serasa.sitenet05.wsgestordecisao.wsgestordecisao.WsgestordecisaoSoapStub;

public class Cliente  {
    private String retorno;

   public Cliente() {
      try {
         WsgestordecisaoLocator locator = new WsgestordecisaoLocator();
	 WsgestordecisaoSoapStub cliente = (WsgestordecisaoSoapStub)locator.getwsgestordecisaoSoap();
			 
	 retorno = cliente.retornoLote("1", "1");
      }				
      catch (Exception e) {
         e.printStackTrace();
      }
   }

   public String getRetorno() {
      return retorno;
   }

   public void setRetorno(String s) {
      retorno = s;
   }
}

Talvez essa forma de representar a classe Cliente seja mais adequada ao mecanismo que vocês está usando para integrá-la com o COBOL.

A

Funcionou?

K

Oi Armênio.

Obrigada, funcionou perfeitamente, o que eu fiz depois foi perfumaria, mas a base era essa mesma. Está tudo funcionando. Esse tutorial que vc me enviou vai ajudar muita gente, ele é muito útil.

Muito obrigada,
Ariana

R

armeniocardoso:
Kariana,

Segue um tutorial de como fazer o consumo do Web Service. É possível que você tenha a senha para o acesso, pois caso contrário o sistema retorna um erro (o que indica que o acesso funciona).

Espero ter sido útil.

Armenio,
Por exemplo, para a pesquisa de um CPF eu passaria quais informações? Que chaveArquivo seria este, e como eu faço para conseguir um usuário e senha?
Esse WS é de homologação como eu teria acesso ao de produção?

Criado 16 de abril de 2010
Ultima resposta 16 de set. de 2010
Respostas 15
Participantes 5