2015-11-19 4 views
0

Я создал компонент EJB с 1 интерфейсом (Converter.java) ...Как создать клиентское приложение, использующее компонент EJB?

package converter; 

public interface Converter { 
    public double euroToOtherCurrency(double amount, String currencyCode); 
} 

... и 1 класс (ConverterBean.java), который реализует Converter:

package converter; 

@Stateless 
@Remote(Converter.class) 
public class ConverterBean implements Converter { 

    public double euroToOtherCurrency(double amount, String currencyCode) { 
     // implementation 
    } 
} 

Затем я развернул это приложение на моем сервере Glassfish.

Теперь я хочу создать независимое клиентское приложение, которое использует мой компонент EJB, но будет развернуто в независимой JVM.

Я скопировал интерфейс Convert в клиентском приложении, и здесь является основным классом:

import javax.naming.InitialContext; 
import java.util.Scanner; 

public class Client { 

    public static void main (String[] args){ 

     Converter converter = (Converter) InitialContext.doLookup("java:global/Converter/Converter-ejb/ConverterBean"); 

     Scanner sc = new Scanner(System.in); 
     System.out.println("Amount :"); 
     Double amount = sc.nextDouble(); 
     System.out.println("Currency :"); 
     sc.nextLine(); 
     String currency = sc.nextLine(); 

     System.out.println(converter.euroToOtherCurrency(amount, currency));   
    } 
} 

Я следующее сообщение об ошибке:

Client.java:8: error: cannot find symbol Converter converter = (Converter) InitialContext.doLookup("java: global/Converter/Converter-ejb/ConverterBean"); symbol: class Converter location: class Client

Однако, я думал изменить ClassPath Environnement :

set CLASSPATH=C:\Program Files\glassfish-4.1.1\glassfish\lib\appserv-rt;jndi.properties;. 

Адрес: jndi.properties:

java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory 
org.omg.CORBA.ORBInitialHost=localhost 
org.omg.CORBA.ORBInitialPort=3700 

Не могли бы вы рассказать мне, что случилось? Спасибо.

ответ

0

Сервер Glassfish предоставляет библиотеки для разработки клиентских приложений. Используя их, вы должны иметь доступ к компонентам, запущенным на сервере приложений, как если бы ваш код работал и на сервере приложений (я считаю, что и аннотации будут работать).

Посмотрите official development documentation for Glassfish 4 - Раздел 10: Разработка Java-клиентов

Смежные вопросы