Faça uma aplicação cliente EJB em Java ME
Dados do artigo
Artigo
Tradução:
Originado de Make EJB client in Java ME
Por maiconherverton
Última alteração feita por hamishwillee
em 08 Dec 2011
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!"
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)
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!
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();
}
}
}







(no comments yet)