Como criar um cliente em Java para acessar webService

Olá Galera do GUJ!!! :lol:

Estou com o seguinte problema, na empresa onde trabalho estamos fazendo a integração de dois sistemas através de um webService desenvolvido na plataforma asp .net.

Um colega de trabalho concluiu o webservice com os servicos e o publicou e eu preciso agora utilizando a linguagem java no outro sistema acessar os serviços do webservice enviando dados e obtendo a resposta.

Já pesquisei em varios artigos e até mesmo neste fórum mas não encontei nenhum que se assemelhe a situação declarada acima.

Alguem por gentileza, saberia dizer por onde devo começar?

Desde Já Agradeço.!! :smiley:

http://www.seducaotecnologica.com.br/tutorial-soa-passo-passo-3/

Valeu Mesmo!!! :lol:

Eu dei uma pesquisada maior e encontrei algumas coisas interessantes que se aproximaram bastante do que estou precisando e até tentei implementar:

  1.     String endpoint = "http://www.unimedcaruaru.com.br/webservice/servico1.asmx";  
    
  2.     Service  service = new Service();  
    
  3.     Call     call    = (Call) service.createCall();  
    
  4.     call.setUseSOAPAction(true);  
    
  5.     call.setTargetEndpointAddress( new java.net.URL(endpoint) );  
    
  6.     call.setOperationName(new QName("http://www.unimedcaruaru.com.br/webservice/ExisteSolicitacao", "ExisteSolicitacao"));  
    
  7.     Object[] ret = (Object[]) call.invoke( new Object[] { 174000400345774 } );  
    

Neste pequeno exemplo eu envio o código do beneficiário e o método do webservice deve me retornar um array de object com todos os serviços que foram autorizados pelo plano de saúde para este, os quais deverei exibir no sistema.

Mas quando chega exatamente na linha 10, quando retorna dispara esta excessão no console:

Exception in thread “main” AxisFault

faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client

faultSubcode:

faultString: O Servidor não reconheceu o valor de HTTP Header SOAPAction: .

faultActor:

faultNode:

faultDetail:

{http://xml.apache.org/axis/}stackTrace: O Servidor não reconheceu o valor de HTTP Header SOAPAction: .

Queria saber de estou no caminho certo para resolver o problema ou deveria tentar de outra forma.

Desde já agradeço!!! :smiley:

E aí galera!!! Será que alguem poderia me dar uma luz??? :shock: :cry: :?

Utilize a ferramente wsimport que está disponível no Java 6. Ela irá criar todos os artefatos necessários para acessar um WS.

Exemplo:

wsimport -s c:\fontes http://localhost:8080/Service/service?wsdl

Aê Galera!!! :lol: :smiley:

Como este fórum tem o principio básico de ser comunitário destinado ao auxílio de inúmeros ‘sofredores’ do código Java e afins, senti-me na obrigação de compartilhar a resolução do meu problema.

Na verdade é um procedimento bem simples, bastou eu baixar e instalar um plugin no eclipse do XFire (http://xfire.codehaus.org/Eclipse+Plugin) que ai pronto… Foi uma belezinha. Depois que vc informa a URL do WSDL e clica no finish ele traz todos os serviços em forma de classes Java, daí pra frente mano, eh botar a mão na massa e só Java na cabeça.

Achei super interessante a estrutura que ele monta, pq no meu caso como citei o webservice foi todo feito em C#, mas quando o XFire importa ele cria uma interface com os métodos como uma fachada e uma classe concreta que implementa essa interface, ou seja, no bom e velho estilo MVC.

Agradeço a todos que direta ou indiretamente me ajudaram e espero que este tópico ajude outros tbm.

Saudações a Todos. :lol:

[quote=robson_campelo]Olá Galera do GUJ!!! :lol:

Estou com o seguinte problema, na empresa onde trabalho estamos fazendo a integração de dois sistemas através de um webService desenvolvido na plataforma asp .net.

Um colega de trabalho concluiu o webservice com os servicos e o publicou e eu preciso agora utilizando a linguagem java no outro sistema acessar os serviços do webservice enviando dados e obtendo a resposta.

Já pesquisei em varios artigos e até mesmo neste fórum mas não encontei nenhum que se assemelhe a situação declarada acima.

Alguem por gentileza, saberia dizer por onde devo começar?

Desde Já Agradeço.!! :smiley: [/quote]