求助!关于远程调用EJB3.0
在java项目中调用部署在glassfish中的EJB时报错:
//java代码:
public class FirstEjbClient {
public static void main(String[] args){
Properties props = new Properties();
try{
props.load(new FileInputStream("jndi.properties"));
InitialContext context = new InitialContext(props);
FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean");
String someting = firstEjb.saySometing("李斯");
System.out.println(someting);
}catch (Exception e) {
e.printStackTrace();
}
}
}
//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
EJB部署成功,执行main方法报错如下:
java.io.FileNotFoundException: D:\WorkSpace\config\security.properties (系统找不到指定的路径。)
java.io.
FileNotFoundException: D:\WorkSpace\config\ejb.properties (系统找不到指定的路径。)
求大虾指教!!
------解决方案--------------------文件路径问题,两个配置文件打在ejb包中了吗?没有,需要按照实际部署,修改配置文件路径值
------解决方案--------------------可以使用eclipse的打包工具
将整个EJB项目,打成war包,并部署到相应目录。
------解决方案--------------------之前理解错误了,是客户端初始化时候找不到配置文件
D:\WorkSpace\config\security.properties 路径中怎么没有你客户端项目名?难道你的项目名称是config?
如果为快速测试,不妨使用setProperty(String key, String value) 直接设置参数
------解决方案--------------------如果jndi.properties在src目录下,直接Context context = new InitialContext(),默认加载src下的jndi.properties