Não consigo ler o resulado de um serviço (soap) em um mecanismo de atribuição

Prezados, bom dia.

Cadastrei um serviço no meu ambiente do Fluig e ao tentar consumi-lo enfrento o seguinte o problema:

Rotina de leitura



    var codigoservico = 'SrvConsultaCtr'; 
    var classeservico = 'mostaert.com.br.ListarAprovadorContratoTOP'; 
    try {
        var service = ServiceManager.getServiceInstance(codigoservico);
        var helper = service.getBean();
        var locator = helper.instantiate(classeservico);        
        var endpoint = locator.getSOAP11Endpoint();
        var result = endpoint.listarProxAprovadorContratoTOP("123", "456", "10000000000", "");
        log.info("Resultado do endpoint: " + result.toString());

        var xml = new XML(result); 
        log.info("XML: " + xml.toString());

        var proximoAprovador = "";
        for (var index in xml.aprovador) {
            var element = xml.aprovador[index];

            proximoAprovador = element.p_sig_proximo_usuario.toString();

            log.info("p_sig_proximo_usuario: " + element.p_sig_proximo_usuario.toString());
            log.info("p_ind_existe_prox_nivel: " + element.p_ind_existe_prox_nivel.toString());
            break;
        }
        return proximoAprovador;
    } catch (e) {
        log.error(e.message);
    } // try catch

Quando mando imprimir o no log o resultado da chamada


log.info("Resultado do endpoint: " + result.toString());

o resultado do log é:


Resultado do endpoint: [mostaert.com.br.Aprovador@342504e][0m

Analisando o painel do wso2, ele recebeu uma requisição e retornou o resulto corretamente, que foi:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <aprovadores xmlns="br.com.mostaert">
         <aprovador>
            <p_sig_proximo_usuario>OTTO.MOSTAERT</p_sig_proximo_usuario>
            <p_ind_existe_prox_nivel>S</p_ind_existe_prox_nivel>
         </aprovador>
      </aprovadores>
   </soapenv:Body>
</soapenv:Envelope>

Img do exemplo pelo soapui exemplo_soapui.png

Alguém saberia indicar onde estou errado?

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

@Otto, bom dia!!

Como fez o cadastro deste serviço no fluig, o mesmo é gerado em classes java. O seu retorno será uma das classe que foram geradas, no caso a impressa no log, mostaert.com.br.Aprovador.

Faça um consulta do seu webservice, na visualização de serviços do seu TDS ou eclipse, vai aparecer todas as classes do seu webservice, procure pela classe, mostaert.com.br.Aprovador e verifique como manipular o seu retorno.

OLá @Rodolfo, já verifiquei e está certinho. Vou tentar a sugestão so @Laércio em criar um dataset

Vai dar na mesma, o que não pode é tentar utilizar esse retorno com um new XML() e sim utilizando o objeto retornado pelo método do seu serviço!

Prezado Rodolfo, precisei ajustar um “cabelinho de sapo” no meu servidor de serviços (wso2) e segui sua dica e funcionou perfeitamente. Obrigado pela ajuda.

Que bom que deu certo :slight_smile: