×
Namespaces

Variants
Actions

Como fazer uma aplicação cliente EJB em Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Tradução:
Por maiconherverton
Última alteração feita por lpvalente em 27 Apr 2014


Este artigo cria uma aplicação EJB (Entreprise Java Beans) que recebe strings.

Nós vamos criar uma pequena aplicação EJB e temos duas maneiras de resolver a comunicação a partir do telefone móvel.

Contents

Aplicação EJB

O appliaction espera por uma sequência e envia uma resposta: "Hello $string!"

package com.nokia.developer.wiki;
 
import javax.ejb.Stateless;
import javax.jws.WebService;
 
@Stateless()
@WebService
public class Hello
{
public String getHello(String name)
{
return "Hello " + name + "!";
}
}

Forma fácil com WSA e NetBeans

Se o telefone de destino suporta WSA, só precisamos importar o arquivo WSDL a partir do servidor e o assistente NetBeans irá criar um aplicativo de exemplo para nós.

Passos:

  • Criar uma nova Aplicação móvel (Mobile Application)
  • Com o botão direito clique em Projeto(Project) / Novo(New) / J2ME Web Service Client
  • Escreva a URL para na caixaWSDL URL e clique no botão Retrieve WSDL
  • Vá emCriar um exmeplo MIDLet(Create Sample MIDLet) e clique em Fim(Finish)

Nbhw1.pngNbhw2.pngNbhw3.png

Outro caminho sem WSA

Se o telefone de destino não suporta o recurso WSA, precisamos usar de alguma forma, algo como kSOAP2. Nós não podemos usar os benefícios do WSDL e é preciso editar manualmente a a mensagem 'soap'.

Não se esqueça de adicionar as libs do kSOAP2 no projeto!

Soap1.pngSoap2.png

package helloworld;
 
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;
 
public class HelloWorldMidlet extends MIDlet implements CommandListener {
 
public HelloWorldMidlet() {
}
// Display
private Display display;
// Form principal
private Form form;
// Para a mensagem
private StringItem stringItem;
// Para o comando de saida
private Command exitCommand;
 
public void commandAction(Command command, Displayable displayable) {
if (displayable == form) {
if (command == exitCommand) {
exitMIDlet();
}
}
}
 
public void startApp() {
// Cria o formulário
stringItem = new StringItem("Hello", "Hello World!");
form = new Form(null, new Item[] {stringItem});
exitCommand = new Command("Exit", Command.EXIT, 1);
form.addCommand(exitCommand);
form.setCommandListener(this);
 
// Recupera para desenhar
display = Display.getDisplay(this);
display.setCurrent(form);
soapCall();
}
 
public void pauseApp() {
}
 
public void destroyApp(boolean unconditional) {
}
 
public void exitMIDlet() {
display.setCurrent(null);
destroyApp(true);
notifyDestroyed();
}
public void soapCall() {
SoapSerializationEnvelope soapEnvelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
// Cria o pedido de saída
SoapObject soapObject =
new SoapObject("http://www.developer.nokia.com/Community/Wiki/", "getHello");
// Adiciona o parâmetro
soapObject.addProperty("arg0", "Tibor");
// Atribui o objeto para o envelope
soapEnvelope.setOutputSoapObject(soapObject);
// faz a chamada
try {
HttpTransport transport =
new HttpTransport("http://localhost:8080/HelloService/Hello");
transport.call(null , soapEnvelope);
Object responseObject = null;
responseObject = soapEnvelope.getResponse();
System.out.println(responseObject);
stringItem.setText(responseObject.toString());
}
catch (Exception e){
System.out.println("Exception : "+ e.getMessage());
e.printStackTrace();
}
}
}

Link's úteis

This page was last modified on 27 April 2014, at 14:28.
56 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×