2015-11-19 60 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客户端

相关问题