2015-11-19 43 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環境在:

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客戶端

相關問題