[resolvido] JAX-WS: tag XML inesperada

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>

O problema neste caso é uma falha no contrato WSDL (o esquema que o SOAP promete usar na resposta em caso de falha na validação, neste caso username faltando, é um pouco diferente do objeto que ele de fato entrega, por isso o java acusa tag xml inesperada). Foi um erro de quem desenvolveu o SOAP.

Como não sou o desenvolvedor do SOAP em questão, descobri essa falha tentanto validar a resposta usando o SOAP-UI com a mesma requisição feita no Java. O SOAP-UI não validou a resposta de erro (fault), uma vez que a mesma tem campos em desacordo com o esquema xsd desse SOAP.