我创建了一个带有1个接口的EJB组件(Converter.java)......
package converter;
public interface Converter {
public double euroToOtherCurrency(double amount, String currencyCode);
}
...和实现Converter
的1个类(ConverterBean.java):
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:错误:找不到符号 Converter converter =(Converter)InitialContext.doLookup(“java: global / Converter / Converter-ejb / ConverterBean“);符号:class 转换器位置:类客户端
但是,我想改变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 :(得分:0)
Glassfish服务器提供了用于开发客户端应用程序的库。使用这些,您应该能够访问在应用程序服务器中运行的组件,就像您的代码也在应用程序服务器中运行一样(我相信注释也会起作用)。
查看official development documentation for Glassfish 4 - 第10节:开发Java客户端