Aplicação Desktop + EJB

Pessoal,

Estou iniciando estudo em EJB, e gostaria de criar uma aplicação Desktop + EJB, já dei uma olhada em vários lugares e não localizei muito material sobre a integração EJB/Desktop.

Minhas dúvidas iniciais são:

1- Para rodar a aplicação cliente (Desktop), ela precisa está incorporada em um container ou não?
2- Como faço para chamar um EJB q está em outra máquina?

P.S.: Se alguém tiver e/ou poder me indicar algum exemplo, será bem vindo.

T+
JC

1 - Não é necessário a aplicação estar em um container.

2 - Você precisa fazer um lookup no EJB.

http://www.javafree.org/news/view.jf?idNew=2761
http://www.javafree.org/javabb/viewtopic.jbb?t=12088
http://www.roseindia.net/javabeans/javabeans.shtml

Caro Guilherme,

Obrigado pela dica.
No momento do lookup eu passo o ip do servidor? Você poderia me conseguir algum exemplo?

T+
JC

Pessoal,

Tentei implementar um exemplo simples para testar o lookup de uma aplicação stanalone com um EJB em um container remoto.
Segue abaixo a implementação do aplicativo cliente e do EJB (servidor Glassfish):

App Cliente:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clientappstandalone;

import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 *
 * @author kurumin
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            Properties props = new Properties();
            props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
            props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
            props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
            props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
            props.setProperty("org.omg.CORBA.ORBInitialPort", "12332");
            
            InitialContext ic; 
            System.out.println("testeante");
            ic = new InitialContext(props);
            
            Object o = ic.lookup("Bean30#ejb.Bean30Remote");
            
            System.out.println("testepos");
            
        } catch (NamingException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

EJB’s:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejb;

import javax.ejb.Stateless;

/**
 *
 * @author kurumin
 */
@Stateless (mappedName="Bean30")
public class Bean30Bean implements Bean30Remote, Bean30Remote2 {

    public String getResult() {
        return "This is EJB 3.0 Bean";
    }

    public String getResult2() {
        return "This is EJB 3.0 Bean 2";
    }
 
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejb;

import javax.ejb.Remote;

/**
 *
 * @author kurumin
 */
@Remote
public interface Bean30Remote {

    String getResult();
    
}

Este exemplo está apresentando o seguinte erro:

Pessoal,

Já tentei de todo jeito e não consegui, será q alguém poderia me dá uma mãozinha?
Aceito sugestões?
:?: :?: :?: :newbie: :martelada:
Ou então algum exemplo parecido q esteja funcionando.
T+

JC

[quote=jcahg]Pessoal,

Já tentei de todo jeito e não consegui, será q alguém poderia me dá uma mãozinha?
Aceito sugestões?
:?: :?: :?: :newbie: :martelada:
Ou então algum exemplo parecido q esteja funcionando.
T+

JC[/quote]

jcahg,

Por favor, evite ficar “upando” o tópico. Aguarde alguém responder sua dúvida. Caso isso não acontece, é porque realmente ninguém sabe como te ajudar :wink:

http://www.google.com.br/search?hl=pt-BR&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=EJB+%2B+glassfish+lookup&spell=1