Problema na conexão ao webservice

0 respostas
D

Estou enfrentando um problema numa aplicação que envia determinadas informações para um webservice e, na hora de exibir o retorno, às vezes (aprox 1 em cada 10 vezes) retorna o formulário vazio! O que pode estar acontecendo, pois na linha 29, o result2 deveria estar sempre recebendo o retorno do webservice...

Código da classe que executa a conexão:
class OperacaoThread extends Thread {       //THREAD DA OPERACAO

    private static final String URL = "http://192.168.0.123:8080/SBBeanService/Service";
    private static final String SOAP_ACTION_LOGIN = "Operacao";
    private static final String NAMESPACE = "http://teste.servico.com.br";
    private static final String OPERATION_LOGIN = "Operacao";

    public void run() {

        wstring = "xxx|yyy|aaa|bbb|ccc";

        try {                    
                                        
                    SoapObject request;

                    request = new SoapObject(NAMESPACE, OPERATION_LOGIN);
                    
                    SoapSerializationEnvelope envelope = 
                                           new SoapSerializationEnvelope(SoapEnvelope.VER11);
                    
                    envelope.setOutputSoapObject(request);
                    
                    request.addProperty("arg0", wstring);
                    
                    HttpTransport httpTransport = new HttpTransport(URL);
                    
                    httpTransport.call(SOAP_ACTION_LOGIN, envelope);
                    
                    result2 = envelope.getResponse();  // obtem a string de RETORNO
                    
                    wmsg = result2.toString();
                    
        }catch(SoapFault sf){
            System.out.println("SOAPFault msg> "+ sf.faultstring);

            wmsg=sf.faultstring;
            
            }
            
        }catch (Exception e) {

                    System.out.println("Resultado errado " + e.toString());
                                        
                    wmsg = "Falha na comunicação. Tente Novamente!";

                    e.printStackTrace();
                }

                    }

        switchDisplayable(null, getTerminoOperacao());

        }

    }
Método que monta o formulário que exibe o retorno:
public Form getTerminoOperacao() {
        if (TerminoOperacao == null) {
            TerminoOperacao = new Form("", new Item[] { getSiRetorno() });
            TerminoOperacao.addCommand(getOkCommand6());
            TerminoOperacao.setCommandListener(this);          
        }
        return TerminoOperacao;
    }
Método que monta a string que exibirá o retorno:
public StringItem getSiRetorno() {
        if (siRetorno == null) {
            siRetorno = new StringItem("", wmsg);
        }
        return siRetorno;
    }
Criado 27 de dezembro de 2009
Respostas 0
Participantes 1