blz, galera!
tenho um WS SOAP pra consultar: http://10.200.240.83/SevDocumento/UploadService/UploadService.wsdl
gerei os artefatos com wsimport:
wsimport -keep -Xnocompile -encoding UTF8 -verbose http://10.200.240.83/SevDocumento/UploadService/UploadService.wsdl
na hora de invocar, obtenho esse erro de tag inesperada!
static void m01() throws Exception {
DadosDocumentoFicha dados = new DadosDocumentoFicha();
dados.setAnoFicha(2020);
dados.setNumeroFicha(884);
DocumentoUpload doc = new DocumentoUpload();
doc.setNomeDocumento("DOCUMENTO TESTE");
doc.setConteudo("cid:1084833847422".getBytes("UTF-8"));
dados.getDocumentos().add(doc);
// invocando
UploadService uploadService = new UploadService_Service().getUploadServicePort();
FichaDigital ficha = uploadService.reenviarDocumentosFicha(dados);
System.out.println(ficha);
}
stack trace
Exception in thread "main" com.sun.xml.internal.ws.streaming.XMLStreamReaderException: tag XML inesperada: esperava {http://upload.gever.company.br/}reenviarDocumentosFichaResponse, mas encontrou: {http://upload.gever.company.br/}reenviarDocumentosFicha
at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:261)
at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:266)
at com.sun.xml.internal.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:634)
at com.sun.xml.internal.ws.client.sei.StubHandler.readResponse(StubHandler.java:243)
at com.sun.xml.internal.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:189)
at com.sun.xml.internal.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:276)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:104)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:77)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147)
at com.sun.proxy.$Proxy34.reenviarDocumentosFicha(Unknown Source)
at service.Main.m01(Main.java:31)
at service.Main.main(Main.java:14)
setando essas properties de sistema:
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dumpTreshold", "999999");
consegui debugar o envio e recebimento dos envelopes, o java está conseguindo consultar e recebe a resposta, mas tem uma tag na resposta que deveria ser:
<reenviarDocumentosFichaResponse>
mas no log está aparecendo
<reenviarDocumentosFicha>
log do envelope de resposta:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<!-- deveria ser <reenviarDocumentoFichaResponse> !!! -->
<ns2:reenviarDocumentosFicha xmlns:ns2="http://upload.gever.company.br/">
<dadosDocumentoFicha>
<anoFicha>2020</anoFicha>
<documentos>
<conteudo>Y2lkOjEwODQ4MzM4NDc0MjI=</conteudo>
<nomeDocumento>DOCUMENTO TESTE</nomeDocumento>
</documentos>
<numeroFicha>884</numeroFicha>
</dadosDocumentoFicha>
</ns2:reenviarDocumentosFicha>
<S:Fault>
<faultcode>S:Server</faultcode>
<detail>
<AutenticacaoException>
<faultCode>063</faultCode>
<faultString>O username É OBRIGATÓRIO</faultString>
</AutenticacaoException>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
acho que é o Java que esta errando no XML, porque se eu faço a requisição fora da app usando o utilitario SOAP-UI por exemplo, a tag de resposta vem certa: <reenviarDocumentoFichaResponse>