Implementando webservices em dispositivos J2ME
Conheça um pouco sobre webservices em dispositivos que utilizam a tecnologia Java ME.
Implementando webservices em dispositivos J2ME
JSR 172, Web Services API, extend a plataforma J2ME para suportar web services. Esta webservice api consiste em 2 pacotes opcionais: “Java API for Remote Method Invocations” e “Java API for XML Processing”.
Abaixo está uma ilustração simples do webservice usando parsers diferentes do xml.
import java.io.*;<B><SPAN >import </SPAN></B><SPAN >javax.microedition.midlet.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >javax.microedition.lcdui.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >org.ksoap.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >org.kobjects.serialization.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >org.kxml.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >org.kxml.io.*;</SPAN><B><SPAN >import </SPAN></B><SPAN >org.kxml.parser.*;</SPAN><B><SPAN >public class </SPAN></B><SPAN >HelloWorld </SPAN><B><SPAN >extends </SPAN></B><SPAN >MIDlet </SPAN><B><SPAN >implements </SPAN></B><SPAN >CommandListener {</SPAN><B><SPAN >private </SPAN></B><SPAN >Display display;</SPAN><B><SPAN >private </SPAN></B><SPAN >Command doneCommand;</SPAN><B><SPAN >private </SPAN></B><SPAN >TextField textField;</SPAN><B><SPAN >public </SPAN></B><SPAN >HelloWorld() </SPAN><B><SPAN >throws </SPAN></B><SPAN >Exception {</SPAN><SPAN >display = Display.getDisplay(</SPAN><B><SPAN >this</SPAN></B><SPAN >);</SPAN><SPAN >doneCommand = </SPAN><B><SPAN >new </SPAN></B><SPAN >Command(</SPAN><SPAN >"DONE"</SPAN><SPAN >, Command.CANCEL, </SPAN><SPAN >1</SPAN><SPAN >);</SPAN><SPAN >}</SPAN><B><SPAN >private </SPAN></B><SPAN >String soapMesg =</SPAN><SPAN >"<SOAP-ENV:Envelope " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:SOAP-ENV=\"http://www.w3.org/2001/12/soap-envelope\" " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" </SPAN><SPAN >+</SPAN><SPAN >"<SOAP-ENV:Body>" </SPAN><SPAN >+</SPAN><SPAN >"<message xsi:type=\"xsd:string\">Hello World</message>" </SPAN><SPAN >+</SPAN><SPAN >"<message02 xsi:type=\"xsd:string\">unreachable</message02>" </SPAN><SPAN >+</SPAN><SPAN >"</SOAP-ENV:Body>" </SPAN><SPAN >+</SPAN><SPAN >"</SOAP-ENV:Envelope>"</SPAN><SPAN >;</SPAN><B><SPAN >private </SPAN></B><SPAN >String soapRespMesg =</SPAN><SPAN >"<SOAP-ENV:Envelope " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:SOAP-ENV=\"http://www.w3.org/2001/12/soap-envelope\" " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " </SPAN><SPAN >+</SPAN><SPAN >"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" </SPAN><SPAN >+</SPAN><SPAN >"<SOAP-ENV:Body>" </SPAN><SPAN >+</SPAN><SPAN >"<result>" </SPAN><SPAN >+</SPAN><SPAN >"<message xsi:type=\"xsd:string\">Hello World</message>" </SPAN><SPAN >+</SPAN><SPAN >"</result>" </SPAN><SPAN >+</SPAN><SPAN >"</SOAP-ENV:Body>" </SPAN><SPAN >+</SPAN><SPAN >"</SOAP-ENV:Envelope>"</SPAN><SPAN >;</SPAN><B><SPAN >private </SPAN></B><SPAN >String processMesg(String mesg) </SPAN><B><SPAN >throws </SPAN></B><SPAN >Exception {</SPAN><SPAN >ByteArrayInputStream bis = </SPAN><B><SPAN >new </SPAN></B><SPAN >ByteArrayInputStream(mesg.getBytes());</SPAN><SPAN >InputStreamReader reader = </SPAN><B><SPAN >new </SPAN></B><SPAN >InputStreamReader(bis);</SPAN><SPAN >XmlParser xp = </SPAN><B><SPAN >new </SPAN></B><SPAN >XmlParser(reader);</SPAN><SPAN >SoapEnvelope envelope = </SPAN><B><SPAN >new </SPAN></B><SPAN >SoapEnvelope(</SPAN><B><SPAN >new </SPAN></B><SPAN >ClassMap(Soap.VER12));</SPAN><SPAN >envelope.parse(xp);</SPAN><B><SPAN >return </SPAN></B><SPAN >(String) envelope.getBody();</SPAN><SPAN >}</SPAN><B><SPAN >private </SPAN></B><SPAN >String processRespMesg(String mesg) </SPAN><B><SPAN >throws </SPAN></B><SPAN >Exception {</SPAN><SPAN >ByteArrayInputStream bis = </SPAN><B><SPAN >new </SPAN></B><SPAN >ByteArrayInputStream(mesg.getBytes());</SPAN><SPAN >InputStreamReader reader = </SPAN><B><SPAN >new </SPAN></B><SPAN >InputStreamReader(bis);</SPAN><SPAN >XmlParser xp = </SPAN><B><SPAN >new </SPAN></B><SPAN >XmlParser(reader);</SPAN><SPAN >SoapEnvelope envelope = </SPAN><B><SPAN >new </SPAN></B><SPAN >SoapEnvelope(</SPAN><B><SPAN >new </SPAN></B><SPAN >ClassMap(Soap.VER12));</SPAN><SPAN >envelope.parse(xp);</SPAN><B><SPAN >return </SPAN></B><SPAN >(String) envelope.getResult();</SPAN><SPAN >}</SPAN><B><SPAN >public void </SPAN></B><SPAN >startApp() {</SPAN><SPAN >String mesg;</SPAN><SPAN >Form form = </SPAN><B><SPAN >new </SPAN></B><SPAN >Form(</SPAN><SPAN >"Exemplo Hello World"</SPAN><SPAN >);</SPAN><B><SPAN >try </SPAN></B><SPAN >{</SPAN><SPAN >mesg = processMesg(soapMesg);</SPAN><SPAN >} </SPAN><B><SPAN >catch </SPAN></B><SPAN >(Exception e) {</SPAN><SPAN >mesg = </SPAN><SPAN >"falha no parsing"</SPAN><SPAN >;</SPAN><SPAN >e.printStackTrace();</SPAN><SPAN >}</SPAN><SPAN >form.append(</SPAN><B><SPAN >new </SPAN></B><SPAN >StringItem(</SPAN><SPAN >"SoapMesg"</SPAN><SPAN >, mesg));</SPAN><B><SPAN >try </SPAN></B><SPAN >{</SPAN><SPAN >mesg = processRespMesg(soapRespMesg);</SPAN><SPAN >} </SPAN><B><SPAN >catch </SPAN></B><SPAN >(Exception e) {</SPAN><SPAN >mesg = </SPAN><SPAN >"falha no parsing"</SPAN><SPAN >;</SPAN><SPAN >e.printStackTrace();</SPAN><SPAN >}</SPAN><SPAN >form.append(</SPAN><B><SPAN >new </SPAN></B><SPAN >StringItem(</SPAN><SPAN >"SoapResp</SPAN><SPAN lang=EN-US >Mesg"</SPAN><SPAN lang=EN-US >, mesg));</SPAN><SPAN lang=EN-US >form.addCommand(doneCommand);</SPAN><SPAN lang=EN-US >form.setCommandListener((CommandListener) </SPAN><B><SPAN lang=EN-US >this</SPAN></B><SPAN lang=EN-US >);</SPAN><SPAN lang=EN-US >display.setCurrent(form);</SPAN><SPAN lang=EN-US >}</SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >pauseApp() {</SPAN><SPAN lang=EN-US >}</SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >destroyApp(</SPAN><B><SPAN lang=EN-US >boolean </SPAN></B><SPAN lang=EN-US >unconditional) {</SPAN><SPAN lang=EN-US >}</SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >commandAction(Command command, Displayable screen) {</SPAN><B><SPAN lang=EN-US >if </SPAN></B><SPAN lang=EN-US >(command == doneCommand) {</SPAN><SPAN lang=EN-US >destroyApp(</SPAN><B><SPAN lang=EN-US >false</SPAN></B><SPAN lang=EN-US >);</SPAN><SPAN lang=EN-US >notifyDestroyed();</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >}</SPAN>
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo