1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Dúvida em montagem de cliente para acessar webservice, com SOAP HEADER

Prezados, Primeiro vou colocar minha necessidade, depois meu problema. Agradeço desde já a ajuda!

Necessidade: Estou precisando acessar um web service, utilizando SOAP. O web service primeiro pede para fazer login, usando o método abaixo: http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx?op=Login Esse método usa SOAP HEADER para identificar e autenticar o acesso. Uma vez feito isso, é necessário fazer uma requisição de download de arquivo, usando método abaixo: http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx?op=solicAutorizDownloadArqAnual

Problema: Montei o código abaixo, mas esbarrei em vários erros (também abaixo). Com sou novato em programação, preciso de uma luz para seguir adiante.

public class DownloadAnual {

    protected String guid;  
    protected int idSessao;  

    public DownloadAnual() {  
        this.idSessao = 12358;  
        this.guid = "Marko";  
    }


public static void DownloadAnual(String args[]) {
    try {

    SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
    SOAPConnection soapConnection = soapConnectionFactory.createConnection();

    String url = "http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx";
    SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);

    soapResponse.writeTo(System.out);

    soapConnection.close();

        } catch (Exception e) {
            System.err
                    .println("Error occurred while sending SOAP Request to Server");
            e.printStackTrace();
        }
}

private static SOAPMessage createSOAPRequest() throws Exception {
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage = messageFactory.createMessage();
        SOAPPart soapPart = soapMessage.getSOAPPart();

        String serverURI = "http://www.cvm.gov.br/webservices/Login";

        SOAPEnvelope envelope = soapPart.getEnvelope();

        SOAPElement elementoSessaoIdHeader = message.getSOAPHeader().addHeaderElement(new QName("sessaoIdHeader"));  
        SOAPElement elementoGuid = elementoSessaoIdHeader.addChildElement("Guid");
        SOAPElement idSessaoGuid = elementoSessaoIdHeader.addChildElement("IdSessao");
        Marshaller marshaller = null;  
        Login login = null;  

        login = new ObjectFactory().createLogin();  
        login.setINrSist(1859);  
        login.setStrSenha("2610");  

        elementoGuid.addTextNode(this.guid);  
        idSessaoGuid.addTextNode(Integer.toString(this.idSessao));  

        SOAPBody soapBody = envelope.getBody();

        SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("setINrSist");
        soapBodyElem1.addTextNode(this.setINrSist);

        SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("strSenha");
        soapBodyElem2.addTextNode(Integer.toString(this.strSenha));

        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", serverURI );

        soapMessage.saveChanges();

        System.out.print("Request SOAP Message = ");
        soapMessage.writeTo(System.out);
        System.out.println();

        return soapMessage;
}
}

Erros na compilação:DownloadAnual.java:52: cannot find symbol symbol : variable message location: class DownloadAnual SOAPElement elementoSessaoIdHeader = message.getSOAPHeader().addHeaderElement(new QName("sessaoIdHeader")); ^ DownloadAnual.java:56: cannot find symbol symbol : class Login location: class DownloadAnual Login login = null; ^ DownloadAnual.java:58: cannot find symbol symbol : class ObjectFactory location: class DownloadAnual login = new ObjectFactory().createLogin(); ^ DownloadAnual.java:62: non-static variable this cannot be referenced from a static context elementoGuid.addTextNode(this.guid); ^ DownloadAnual.java:63: non-static variable this cannot be referenced from a static context idSessaoGuid.addTextNode(Integer.toString(this.idSessao)); ^ DownloadAnual.java:67: cannot find symbol symbol : variable soapBodyElem location: class DownloadAnual SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("setINrSist"); ^ DownloadAnual.java:68: non-static variable this cannot be referenced from a static context soapBodyElem1.addTextNode(this.setINrSist); ^ DownloadAnual.java:68: cannot find symbol symbol : variable setINrSist location: class DownloadAnual soapBodyElem1.addTextNode(this.setINrSist); ^ DownloadAnual.java:70: cannot find symbol symbol : variable soapBodyElem location: class DownloadAnual SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("strSenha"); ^ DownloadAnual.java:71: non-static variable this cannot be referenced from a static context soapBodyElem2.addTextNode(Integer.toString(this.strSenha)); ^ DownloadAnual.java:71: cannot find symbol symbol : variable strSenha location: class DownloadAnual soapBodyElem2.addTextNode(Integer.toString(this.strSenha));

Enfim, é isso. Novamente, agradeço pela ajuda!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags soap headers webservices ou faça a sua própria pergunta.