EJB 3.1 удаленный доступ - PullRequest
       23

EJB 3.1 удаленный доступ

2 голосов
/ 03 февраля 2012

EJB могут быть доступны через RMI или как конечную точку SOAP-RESTful.Я хочу получить доступ к удаленному EJB с другого компьютера / IP-адреса, например, в отдельном приложении.Я могу связаться с EJB с помощью конечной точки веб-сервисов, тогда я не знаю, как связаться с RMI.Как я могу реализовать эту идею.Я использую Glassfish 3.1.

1 Ответ

0 голосов
/ 03 февраля 2012

Ознакомьтесь с Как получить доступ к компоненту Remote EJB из автономного Java-клиента? документ. Фрагменты кода основаны на EJB 2 (Home интерфейсы), вы должны искать @Remote интерфейсы напрямую. Конечно, они должны быть доступны на стороне клиента.

Пример

На основе: Создание сессионных компонентов EJB3 с использованием Netbeans 6.1 и Glassfish :

jndi.properties:

java.naming.factory.initial = com.sun.enterprise.naming.SerialInitContextFactory
java.naming.factory.url.pkgs = com.sun.enterprise.naming
java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
org.omg.CORBA.ORBInitialHost = localhost
org.omg.CORBA.ORBInitialPort = 3700

Main.java

package testclient;

import java.io.FileInputStream;
import java.util.Properties;
import javax.naming.InitialContext;
import stateless.TestEJBRemote;

public class Main {

    public static void main(String[] args) {
        try {
            Properties props = new Properties();
            props.load(new FileInputStream("jndi.properties"));
            InitialContext ctx = new InitialContext(props);
            TestEJBRemote testEJB = (TestEJBRemote) ctx.lookup("stateless.TestEJBRemote");
            System.out.println(testEJB.getMessage());
        } catch (NamingException nex) {
            nex.printStackTrace();
        } catch (FileNotFoundException fnfex) {
            fnfex.printStackTrace();
        } catch (IOException ioex) {
            ioex.printStackTrace();
        }

    }

}

Смотри также

...