WsCopiaSoap ws = sampleWsCopiaSoapProxyid.getWsCopiaSoap();
SOAPHeaderElement soapLogin = new SOAPHeaderElement("http://tempuri.org/", "SoapLogin");
SOAPHeaderElement login = new SOAPHeaderElement("http://tempuri.org/","login");
login.addTextNode("usuariodologin");
SOAPHeaderElement senha = new SOAPHeaderElement("http://tempuri.org/", "senha");
senha.addTextNode("senhasecreta");
soapLogin.addChild(login);
soapLogin.addChild(senha);
((Stub)ws).setHeader(soapLogin);
java.lang.String listarTemplatesDisponiveis13mtemp = sampleWsCopiaSoapProxyid.listarTemplatesDisponiveis();
Problemas com header em WS cliente
R
Pessoal.
Procurei no fórum e não encontrei nada para me ajudar.
Não sei também se estou no subfórum correto.
Mas a questão é que preciso acessar o WS da CTF.
Criei via wizard do Eclipse as classes para acessar.
Porém o WS da CTF necessita de um header com login e senha.
O wizard do Eclipse não criou isso.
Então fiquei "estonado" porque apesar de conhecer alguma coisa sobre WS ( já fiz um e fiz varios clientes para WS .net, php etc.. ) nunca usei o header.
Alguem já passou por isso e pode dar uma dica de como colocar tags no header nas classes geradas pelo Eclipse?
As tentativas que fiz usando SOAPHeaderElement não funcionaram.
Olhem o que já fiz:
Agradeço antecipadamente.
6 Respostas
Pessoal. Procurei no fórum e não encontrei nada para me ajudar. Não sei também se estou no subfórum correto. Mas a questão é que preciso acessar o WS da CTF. Criei via wizard do Eclipse as classes para acessar. Porém o WS da CTF necessita de um header com login e senha. O wizard do Eclipse não criou isso. Então fiquei "estonado" porque apesar de conhecer alguma coisa sobre WS ( já fiz um e fiz varios clientes para WS .net, php etc.. ) nunca usei o header. Alguem já passou por isso e pode dar uma dica de como colocar tags no header nas classes geradas pelo Eclipse? As tentativas que fiz usando SOAPHeaderElement não funcionaram. Olhem o que já fiz:Agradeço antecipadamente.WsCopiaSoap ws = sampleWsCopiaSoapProxyid.getWsCopiaSoap(); SOAPHeaderElement soapLogin = new SOAPHeaderElement("http://tempuri.org/", "SoapLogin"); SOAPHeaderElement login = new SOAPHeaderElement("http://tempuri.org/","login"); login.addTextNode("usuariodologin"); SOAPHeaderElement senha = new SOAPHeaderElement("http://tempuri.org/", "senha"); senha.addTextNode("senhasecreta"); soapLogin.addChild(login); soapLogin.addChild(senha); ((Stub)ws).setHeader(soapLogin); java.lang.String listarTemplatesDisponiveis13mtemp = sampleWsCopiaSoapProxyid.listarTemplatesDisponiveis();
Em geral, eu prefiro colocar headers dentro de uma estrutura chamada HandlerChain (todo cliente JAX-WS tem isso). Já deu uma olhada, sabe qual é a idéia?
[]'s
R
Alexandre, não conheço isso.
Mas obrigado pela dica vou procurar material de estudo sobre Handler Chain.
Posto mais tarde minhas descobertas.
R
Bah! Tô completamente perdido nessa!
Não sei por onde.
O problema acho é que não sei como que funciona a coisa.
Eu sempre pedi pro Eclipse fazer pra mim.
Então não sei como que as classes geradas funcionam.
Sempre usei como “caixa preta”.
E uso a versão 1 do wizard.

R
Como gosto de uma boa briga, segui em frente.
segue o código que fez a bagaça funcionar:WsCopiaSoap ws = sampleWsCopiaSoapProxyid.getWsCopiaSoap();
SOAPHeaderElement soapLogin = new SOAPHeaderElement("http://tempuri.org/", "SoapLogin");
soapLogin.setMustUnderstand(false);
SOAPElement login = soapLogin.addChildElement("login");
login.setValue("usuario");
SOAPElement senha = soapLogin.addChildElement("senha");
senha.setValue("senhasecreta");
((Stub)ws).setHeader(soapLogin);
// dai basta chamar o método
Como gosto de uma boa briga, segui em frente. segue o código que fez a bagaça funcionar:WsCopiaSoap ws = sampleWsCopiaSoapProxyid.getWsCopiaSoap(); SOAPHeaderElement soapLogin = new SOAPHeaderElement("http://tempuri.org/", "SoapLogin"); soapLogin.setMustUnderstand(false); SOAPElement login = soapLogin.addChildElement("login"); login.setValue("usuario"); SOAPElement senha = soapLogin.addChildElement("senha"); senha.setValue("senhasecreta"); ((Stub)ws).setHeader(soapLogin); // dai basta chamar o método
Código Axis2?
R
Não. Não é Axis2.
Criado 4 de dezembro de 2012
Ultima resposta 5 de dez. de 2012
Respostas 6
Participantes 2
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo JavaScript Assertivo: Testes e qualidade de codigo em... Por Gabriel Ramos — Casa do Codigo