aplicaÇÃo j2me acessando webservice[resolvido]

Pessoal.

To montando uma aplicação mobile que consumirá um webservice feito em delphi.

Estou utilizando as classes do projeto ksoap http://ksoap.objectweb.org/software/downloads/current/ksoap-source.zip
e do kxml http://kxml.objectweb.org/software/downloads/current/kxml-source.zip.

public void ConsomeWebService()
{
	StringBuffer stringbuffer = new StringBuffer();

    String url = "http://ip/webservice/bdpwebservice.dll";

    SoapObject client = new SoapObject(url, "INCLUIR");
    client.addProperty("xpto", new String("xpto"));
    HttpTransport ht = new HttpTransport(url, "INCLUIR");
        try
        {
            stringbuffer.append("Resultado foi:" + ht.call(client));
            System.out.println(stringbuffer.toString());
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }

}

E ao executar apresenta o seguinte erro:

org.kxml.io.ParseException: unexpected: StartTag <html> line: -1 attr: null @-1:-1
at org.kxml.parser.AbstractXmlParser.read(AbstractXmlParser.java:105)
at org.ksoap.SoapEnvelope.parseHead(SoapEnvelope.java:82)
at org.ksoap.SoapEnvelope.parse(SoapEnvelope.java:74)
at org.ksoap.transport.HttpTransport.call(HttpTransport.java:246)
at org.ksoap.transport.HttpTransport.call(HttpTransport.java:266)

Alguém pode me dar um sugestão para solucionar? Ou Alternativas?

Valewzz…

A mensagem é auto-explicativa: Que p@%%( de “” tá fazendo na resposta de um webservice ?

Presumo que ele tá aparecendo na resposta devido a erro durante a geração da mesma, por parte do seu webservice em delphi (afff !!!) ou devido a problema na infraestrutura sua que derepente tá bloqueando o acesso ao webservice (proxy gerando mensagem de erro, por exemplo).

Acredito que o a url do wsdl estava errada Boone.

O correto seria http://ip/webservicedes/bdpwebservice.dll/wsdl/IdmSQL.
Sendo assim me retorna conforme uma parte que coloquei abaixo:

<definitions name="IdmSQLservice" targetNamespace="http://tempuri.org/">
<types>
<xs:schema targetNamespace="http://www.borland.com/namespaces/Types">
<xs:complexType name="TStringDynArray">
<xs:complexContent>
<xs:restriction base="soapenc:Array">
<xs:sequence/>
<xs:attribute ref="soapenc:arrayType" n1:arrayType="xs:string[]"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
</types>
<message name="INCLUIR1Request">
<part name="TABELA" type="xs:string"/>
<part name="CAMPOS" type="xs:string"/>
<part name="VALORES" type="xs:string"/>
<part name="CODIGO" type="xs:string"/>
<part name="USUARIO" type="xs:string"/>
<part name="DATA" type="xs:string"/>
</message>

Porém continua dando a exceção:

org.kxml.io.ParseException: unexpected: StartTag <definitions> line: -1 attr: [name="IdmSQLservice", targetNamespace="http://tempuri.org/"] @-1:-1
        at org.kxml.parser.AbstractXmlParser.read(AbstractXmlParser.java:105)
        at org.ksoap.SoapEnvelope.parseHead(SoapEnvelope.java:82)
        at org.ksoap.SoapEnvelope.parse(SoapEnvelope.java:74)
        at org.ksoap.transport.HttpTransport.call(HttpTransport.java:246)
        at org.ksoap.transport.HttpTransport.call(HttpTransport.java:266)
        at TestaWebService.run(TestaWebService.java:38)

Tentei criar através do Wizard do Netbeans: Botão direito no projeto > Novo > Cliente de Serviço Web Java ME e quando ele tentar importar o wsdl acusa a mensagem de que o WSDL não é compatível com a especificação de serviços web Java ME JSR-172.

Por acaso o wsdl que o webservice no delphi está gerando é incompátivel com o ksoap?

Valews.

A forma abaixo funcionou perfeitamente:

No exemplo abaixo estou enviando dados para uma tabela dbo.Acessorios e o webservice me retorna o id do registro gravado na tabela.

        SoapObject client = new SoapObject("http://tempuri.org","INCLUIR");
        client.addProperty("xpto", new String("dbo.Acessorios"));
        client.addProperty("CAMPOS", new String("Descri"));
        client.addProperty("VALORES", new String("'" + "TESTE 3" + "'"));
        client.addProperty("CODIGO", new String("dbo.Acessorios.CodAcessorio"));
        client.addProperty("USUARIO", new String("Carlos Maciel"));
        client.addProperty("DATA", new String("17/6/2009 11:38:00"));
        HttpTransport ht = new HttpTransport();
        ht.setUrl("http://192.168.0.4:1080/webservice/bdpwebservice.dll/soap/idmsql");
        ht.setSoapAction("urn:dmProjeto-IdmSQL#INCLUIR");
        ht.debug = true;

        try
        {            
            System.out.println("O retorno foi: "+ht.call(client).toString());
        }
        catch (org.ksoap.SoapFault ex)
        {
            System.out.println("FaultString: " + ex.faultstring);
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }

Valew …