Consumindo um Webservice via J2me

galera, boa noite!
consegui desenvolver um webservice em java e axis2 que se comunica com um bdzinho em mysql.Agora preciso de uma ajuda para fazer um programinha bem basico em j2me que consigo acessa-lo.O bd possui somente 5 rows como teste e nele existem 4 colunas sobre livros(id, autor, titulo e qtde). o webservice possui 2 operacoes que sao as que me interessam: titulodoautor(que listam os livros de um dado autor) e titulodotitulo(que listam os livros com um certo titulo) e sao acessadas atraves das linhas respectivas, por exemplo:

http://localhost:8080/axis2/services/DBSampleService/getTituloDoAutor?autor=dan%20brown
http://localhost:8080/axis2/services/DBSampleService/getTituloDoTitulo?titulo=anjos%20e%20demonios

vou postar a wsdl do meu web:

[code] <?xml version="1.0" encoding="UTF-8" ?>

  • <wsdl:definitions xmlns:wsdl=“http://schemas.xmlsoap.org/wsdl/” xmlns:ns1=“http://org.apache.axis2/xsd” xmlns:ns=“http://dbsample” xmlns:wsaw=“http://www.w3.org/2006/05/addressing/wsdl” xmlns:http=“http://schemas.xmlsoap.org/wsdl/http/” xmlns:ax21=“http://dbsample/xsd” xmlns:xs=“http://www.w3.org/2001/XMLSchema” xmlns:mime=“http://schemas.xmlsoap.org/wsdl/mime/” xmlns:soap=“http://schemas.xmlsoap.org/wsdl/soap/” xmlns:soap12=“http://schemas.xmlsoap.org/wsdl/soap12/” targetNamespace=“http://dbsample”>
    wsdl:documentationDBSampleService</wsdl:documentation>
  • wsdl:types
  • <xs:schema attributeFormDefault=“qualified” elementFormDefault=“qualified” targetNamespace=“http://dbsample/xsd”>
  • <xs:complexType name=“Livro”>
  • xs:sequence
    <xs:element minOccurs=“0” name=“autor” nillable=“true” type=“xs:string” />
    <xs:element minOccurs=“0” name=“id” type=“xs:int” />
    <xs:element minOccurs=“0” name=“qtde” type=“xs:int” />
    <xs:element minOccurs=“0” name=“titulo” nillable=“true” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
  • <xs:complexType name=“TituloDoTitulo”>
  • xs:sequence
    <xs:element minOccurs=“0” name=“autor” nillable=“true” type=“xs:string” />
    <xs:element minOccurs=“0” name=“id” type=“xs:int” />
    <xs:element minOccurs=“0” name=“qtde” type=“xs:int” />
    <xs:element minOccurs=“0” name=“titulo” nillable=“true” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
  • <xs:complexType name=“TituloDoAutor”>
  • xs:sequence
    <xs:element minOccurs=“0” name=“autor” nillable=“true” type=“xs:string” />
    <xs:element minOccurs=“0” name=“id” type=“xs:int” />
    <xs:element minOccurs=“0” name=“qtde” type=“xs:int” />
    <xs:element minOccurs=“0” name=“titulo” nillable=“true” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • <xs:schema xmlns:ax22=“http://dbsample/xsd” attributeFormDefault=“qualified” elementFormDefault=“qualified” targetNamespace=“http://dbsample”>
    <xs:import namespace=“http://dbsample/xsd” />
  • <xs:element name=“listAllLivroResponse”>
  • xs:complexType
  • xs:sequence
    <xs:element maxOccurs=“unbounded” minOccurs=“0” name=“return” nillable=“true” type=“ax22:Livro” />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
  • <xs:element name=“getTituloDoTitulo”>
  • xs:complexType
  • xs:sequence
    <xs:element minOccurs=“0” name=“titulo” nillable=“true” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
  • <xs:element name=“getTituloDoTituloResponse”>
  • xs:complexType
  • xs:sequence
    <xs:element maxOccurs=“unbounded” minOccurs=“0” name=“return” nillable=“true” type=“ax22:TituloDoTitulo” />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
  • <xs:element name=“getTituloDoAutor”>
  • xs:complexType
  • xs:sequence
    <xs:element minOccurs=“0” name=“autor” nillable=“true” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
  • <xs:element name=“getTituloDoAutorResponse”>
  • xs:complexType
  • xs:sequence
    <xs:element maxOccurs=“unbounded” minOccurs=“0” name=“return” nillable=“true” type=“ax22:TituloDoAutor” />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    </wsdl:types>
  • <wsdl:message name=“getTituloDoAutorRequest”>
    <wsdl:part name=“parameters” element=“ns:getTituloDoAutor” />
    </wsdl:message>
  • <wsdl:message name=“getTituloDoAutorResponse”>
    <wsdl:part name=“parameters” element=“ns:getTituloDoAutorResponse” />
    </wsdl:message>
  • <wsdl:message name=“getTituloDoTituloRequest”>
    <wsdl:part name=“parameters” element=“ns:getTituloDoTitulo” />
    </wsdl:message>
  • <wsdl:message name=“getTituloDoTituloResponse”>
    <wsdl:part name=“parameters” element=“ns:getTituloDoTituloResponse” />
    </wsdl:message>
    <wsdl:message name=“listAllLivroRequest” />
  • <wsdl:message name=“listAllLivroResponse”>
    <wsdl:part name=“parameters” element=“ns:listAllLivroResponse” />
    </wsdl:message>
  • <wsdl:portType name=“DBSampleServicePortType”>
  • <wsdl:operation name=“getTituloDoAutor”>
    <wsdl:input message=“ns:getTituloDoAutorRequest” wsaw:Action=“urn:getTituloDoAutor” />
    <wsdl:output message=“ns:getTituloDoAutorResponse” wsaw:Action=“urn:getTituloDoAutorResponse” />
    </wsdl:operation>
  • <wsdl:operation name=“getTituloDoTitulo”>
    <wsdl:input message=“ns:getTituloDoTituloRequest” wsaw:Action=“urn:getTituloDoTitulo” />
    <wsdl:output message=“ns:getTituloDoTituloResponse” wsaw:Action=“urn:getTituloDoTituloResponse” />
    </wsdl:operation>
  • <wsdl:operation name=“listAllLivro”>
    <wsdl:input message=“ns:listAllLivroRequest” wsaw:Action=“urn:listAllLivro” />
    <wsdl:output message=“ns:listAllLivroResponse” wsaw:Action=“urn:listAllLivroResponse” />
    </wsdl:operation>
    </wsdl:portType>
  • <wsdl:binding name=“DBSampleServiceSoap11Binding” type=“ns:DBSampleServicePortType”>
    <soap:binding transport=“http://schemas.xmlsoap.org/soap/http” style=“document” />
  • <wsdl:operation name=“getTituloDoAutor”>
    <soap:operation soapAction=“urn:getTituloDoAutor” style=“document” />
  • wsdl:input
    <soap:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“getTituloDoTitulo”>
    <soap:operation soapAction=“urn:getTituloDoTitulo” style=“document” />
  • wsdl:input
    <soap:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“listAllLivro”>
    <soap:operation soapAction=“urn:listAllLivro” style=“document” />
  • wsdl:input
    <soap:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
  • <wsdl:binding name=“DBSampleServiceSoap12Binding” type=“ns:DBSampleServicePortType”>
    <soap12:binding transport=“http://schemas.xmlsoap.org/soap/http” style=“document” />
  • <wsdl:operation name=“getTituloDoAutor”>
    <soap12:operation soapAction=“urn:getTituloDoAutor” style=“document” />
  • wsdl:input
    <soap12:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap12:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“getTituloDoTitulo”>
    <soap12:operation soapAction=“urn:getTituloDoTitulo” style=“document” />
  • wsdl:input
    <soap12:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap12:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“listAllLivro”>
    <soap12:operation soapAction=“urn:listAllLivro” style=“document” />
  • wsdl:input
    <soap12:body use=“literal” />
    </wsdl:input>
  • wsdl:output
    <soap12:body use=“literal” />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
  • <wsdl:binding name=“DBSampleServiceHttpBinding” type=“ns:DBSampleServicePortType”>
    <http:binding verb=“POST” />
  • <wsdl:operation name=“getTituloDoAutor”>
    <http:operation location=“DBSampleService/getTituloDoAutor” />
  • wsdl:input
    <mime:content type=“text/xml” part=“getTituloDoAutor” />
    </wsdl:input>
  • wsdl:output
    <mime:content type=“text/xml” part=“getTituloDoAutor” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“getTituloDoTitulo”>
    <http:operation location=“DBSampleService/getTituloDoTitulo” />
  • wsdl:input
    <mime:content type=“text/xml” part=“getTituloDoTitulo” />
    </wsdl:input>
  • wsdl:output
    <mime:content type=“text/xml” part=“getTituloDoTitulo” />
    </wsdl:output>
    </wsdl:operation>
  • <wsdl:operation name=“listAllLivro”>
    <http:operation location=“DBSampleService/listAllLivro” />
  • wsdl:input
    <mime:content type=“text/xml” part=“listAllLivro” />
    </wsdl:input>
  • wsdl:output
    <mime:content type=“text/xml” part=“listAllLivro” />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
  • <wsdl:service name=“DBSampleService”>
  • <wsdl:port name=“DBSampleServiceHttpSoap11Endpoint” binding=“ns:DBSampleServiceSoap11Binding”>
    <soap:address location=“http://localhost:8080/axis2/services/DBSampleService.DBSampleServiceHttpSoap11Endpoint/” />
    </wsdl:port>
  • <wsdl:port name=“DBSampleServiceHttpSoap12Endpoint” binding=“ns:DBSampleServiceSoap12Binding”>
    <soap12:address location=“http://localhost:8080/axis2/services/DBSampleService.DBSampleServiceHttpSoap12Endpoint/” />
    </wsdl:port>
  • <wsdl:port name=“DBSampleServiceHttpEndpoint” binding=“ns:DBSampleServiceHttpBinding”>
    <http:address location=“http://localhost:8080/axis2/services/DBSampleService.DBSampleServiceHttpEndpoint/” />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>[/code]

alguem possui algo semi-pronto ou alguma dica de como conseguir acessar isso via j2me?

eu cheguei a dar uma olhada no exemplo abaixo de um programa que acessa um ws bem simples que retorna uma soma de dois valores passados por parametro, porem nao consegui altera-lo para usar com o meu ws acima:

[code]# import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.TextBox;

import org.ksoap.SoapObject;

import org.ksoap.transport.HttpTransport;

public class ClienteJ2ME extends javax.microedition.midlet.MIDlet {

private Display display;

private String url = “http://localhost:8080/axis/Servico.jws”;

TextBox textbox = null;

public void startApp() {

display = Display.getDisplay(this);

try {

testWebService();

} catch (Exception ex) {

System.out.println(ex);

}

}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void testWebService() throws Exception {

StringBuffer stringBuffer = new StringBuffer();

TextBox textBox = null;

// Chama o WebService

SoapObject client = new SoapObject(url,“soma”);

client.addProperty(“valor1”,new Integer(2));

client.addProperty(“valor2”,new Integer(4));

HttpTransport ht = new HttpTransport(url,“soma”);

stringBuffer.append("

Resultado: " + ht.call(client));

// mostra o valor do resultado na tela.

textBox = new TextBox(“Teste WebService”, stringBuffer.toString(), 1024, 0);

display.setCurrent(textBox);

}

} [/code]

(fonte http://javafree.uol.com.br/artigo/871485/ )

se alguem conseguir ajudar, agradeço imensamente.

valeu!

Olha, ninguem vai ler esse código todo… mas vc já mexeu com KSOAP ?