Pessoal,
Estou tentando conectar ao webservice da cvm.gov.br. Segundo as instruções do site (http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx?op=Login) devo enviar um arquivo xml conforme o indicado. Acredito que estou fazendo certo, como vocês poderão ver no meu código.
Segundo o manual do Sistema, eu devo fazer o seguinte:
[quote]1- Login no CVMWeb:
Para que um sistema cliente possa acessar determinadas funcionalidades do web service, deve-se inicialmente efetuar o Login no CVMWeb.
Para isso, o método Login deve ser chamado, passando como parâmetros o identificador do sistema e a senha de acesso, fornecidos via e-mail após o processo de cadastro.
Esse método, assim como os demais, utiliza recurso de SOAP HEADER. O SOAP HEADER, chama-se sessaoIdHeader e é instanciado pelo próprio método.
Em chamadas subseqüentes a outros métodos, o mesmo SOAP HEADER deve ser enviado ao web service.
[/quote]
Ocorre que independente do conteúdo da minha mensagem xml, desde que bem formada, eu não consigo obter resposta. Ocorre uma mensagem de erro ed NullPointerException dentro da classe HttpSOAPConnection, conforme visualizado após o código.
Alguém tem idéia? Será que o URL (http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx) é esse mesmo?
[code]import java.io.ByteArrayInputStream;
import javax.xml.soap.*;
public class TestClient {
public static void main(String [] args) {
try {
String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+ "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "
+ "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+ "<soap:Header>"
+ "<sessaoIdHeader xmlns=\"http://www.cvm.gov.br/webservices/\">"
+ "<Guid>nonono</Guid>"
+ "<IdSessao>1010</IdSessao>"
+ "</sessaoIdHeader>"
+ "</soap:Header>"
+ "<soap:Body>"
+ "<Login xmlns=\"http://www.cvm.gov.br/webservices/\">"
+ "<iNrSist>1111</iNrSist>"
+ "<strSenha>11111</strSenha>"
+ "</Login>"
+ "</soap:Body>"
+ "</soap:Envelope>";
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage smsg = mf.createMessage(new MimeHeaders(), new ByteArrayInputStream(xmlString.getBytes()));
SOAPPart sp = smsg.getSOAPPart();
SOAPEnvelope se = (SOAPEnvelope)sp.getEnvelope();
SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = conn.call(smsg, "http://www.cvm.gov.br/webservices/Sistemas/SCW/CDocs/WsDownloadInfs.asmx");
System.out.println("Response : " + response.getSOAPBody());
} catch (Exception e) {
e.printStackTrace();
}
}
}[/code]
Stack Trace:
20/02/2011 08:55:15 com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0010: Unable to read response
java.lang.NullPointerException
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.readFully(HttpSOAPConnection.java:643)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:390)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:180)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:151)
at TestClient.main(TestClient.java:33)
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:157)
at TestClient.main(TestClient.java:33)
Caused by: java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:151)
… 1 more
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:414)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:180)
… 3 more
CAUSE:
java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:151)
at TestClient.main(TestClient.java:33)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:414)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:180)
… 3 more
CAUSE:
java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:151)
at TestClient.main(TestClient.java:33)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to read response: null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:414)
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:180)
… 3 more