Java ME + WebService

Seguinte: tenho um Web Service que retorna todos os clientes de um determinado usuário, então passo o usuário, e o web service retorna uma lista de clientes. Quando vou tentar acessar o web service via aplicação Java ME, acontece o seguinte erro:

org.ksoap2.SoapFault
	at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(), bci=56
	at org.ksoap2.SoapEnvelope.parse(), bci=139
	at org.ksoap2.transport.Transport.parseResponse(), bci=27
	at org.ksoap2.transport.HttpTransport.call(), bci=291
	at cliente.ClienteMID.getLista(ClienteMID.java:209)
	at cliente.ClienteMID.startMIDlet(ClienteMID.java:60)
	at cliente.ClienteMID.startApp(ClienteMID.java:339)
	at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
	at com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
	at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
	at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
	at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
	at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
	at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

o código que gera esse erro é :

try {                
                String operation = "listaCliente";
                String ServiceNamespace = "http://tempuri.org";
                String ServiceEndpointURL = "http://127.0.0.1:8080/CalculatorWS/CalculatorWS";
                String Soap_Action = ServiceNamespace + "/"+ operation;
                

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                HttpTransport ht = new HttpTransport(ServiceEndpointURL);
                SoapObject soapBody = new SoapObject(ServiceNamespace, operation);  
                soapBody.addProperty("nome", "teste");
                
                envelope.dotNet = false;
                envelope.bodyOut = soapBody;
                envelope.bodyIn = null;     
                
                ht.debug = true;
                ht.call(Soap_Action, envelope);                
               
                
                if (envelope.bodyIn instanceof SoapFault) {
                    SoapFault soapFault = (SoapFault) envelope.bodyIn;
                    System.out.println(soapFault.faultstring);
                } else {
                    SoapObject result = (SoapObject) envelope.bodyIn;
                    System.out.println(result.toString());
                }                
                
            } catch (Exception ex) {ex.printStackTrace();}

estou utilizando kSOAP e kXML.

O código do web service é esse:

package org.west.calculator;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import persistencia.Cliente;
import persistencia.Imobiliaria;
import persistencia.Usuario;

@WebService(serviceName = "CalculatorWS")
@Stateless()
public class CalculatorWS {

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "listaCliente")
    public java.util.List listaCliente(@WebParam(name = "nome") String nome) {
        
        List lista = new ArrayList();
        
        try{
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(new Date());
            calendar.add(Calendar.DAY_OF_YEAR, -30);
            
            AnnotationConfiguration config = new AnnotationConfiguration();
            config.configure("hibernate.cfg.xml");
            config.addAnnotatedClass(Cliente.class);
            config.addAnnotatedClass(Imobiliaria.class);
            config.addAnnotatedClass(Usuario.class);            
            
            Session session = config.buildSessionFactory().openSession();
            
            Criteria criteria = session.createCriteria(Imobiliaria.class);
            criteria.add(Restrictions.gt("dataentrada", calendar.getTime()));
            criteria.createCriteria("usuario").add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE));
            
            for (Object object : criteria.list()) {
                Imobiliaria imob = (Imobiliaria) object;
                lista.add(imob.getImovel());
            }
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        
        return lista;
    }
}

No servidor quando eu tento acessar o web service, o seguinte erro aparece no console:

AVISO: Received WS-I BP non-conformant Unquoted SoapAction HTTP header: http://tempuri.org/listaCliente

vlw

então, testei o código de kSOAP para acessar outro web service e funcionou…portanto o problema é no web service ou ainda em alguma configuração no servidor.

flw