当前位置: 技术问答>java相关
关于EJB的问题,高手帮忙!
来源: 互联网 发布时间:2015-02-28
本文导语: 我用的是BAS,EJB客户断是一个APPLET,在服务器中配置完成后,运行客户断出现下列问题,请帮忙给予解答!谢谢! javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet p...
我用的是BAS,EJB客户断是一个APPLET,在服务器中配置完成后,运行客户断出现下列问题,请帮忙给予解答!谢谢!
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:643)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:283)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at quickstart.Applet1.jbInit(Applet1.java:39)
at quickstart.Applet1.init(Applet1.java:25)
at sun.applet.AppletPanel.run(AppletPanel.java:344)
at java.lang.Thread.run(Thread.java:539)
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:643)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:283)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at quickstart.Applet1.jbInit(Applet1.java:39)
at quickstart.Applet1.init(Applet1.java:25)
at sun.applet.AppletPanel.run(AppletPanel.java:344)
at java.lang.Thread.run(Thread.java:539)
|
我的WEBLOGIC中是这么设置的
private Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = null;
String password = null;
Properties properties = null;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
log("Unable to connect to WebLogic server at " + url);
log("Please make sure that the server is running.");
throw e;
}
}
如果你用JB的话,可以用JB生成一个EJB测试客户端,里面应该有一个私有成员,就是这个函数,如果你的应用服务器是设置没问题的话,应该就是BAS的CONTEXT的获取方式.你试试看.要不你就只有参看厂商的文档了.那样麻烦.
private Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = null;
String password = null;
Properties properties = null;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
log("Unable to connect to WebLogic server at " + url);
log("Please make sure that the server is running.");
throw e;
}
}
如果你用JB的话,可以用JB生成一个EJB测试客户端,里面应该有一个私有成员,就是这个函数,如果你的应用服务器是设置没问题的话,应该就是BAS的CONTEXT的获取方式.你试试看.要不你就只有参看厂商的文档了.那样麻烦.
|
这样的错误一般是一个很小的错误,有的时候一般是某个变量没有初始化,
再仔细看看代码,应该能找到错误的地方。
再仔细看看代码,应该能找到错误的地方。
|
请参阅JDK以及j2ee的文档,那里讲的很详细的。
E:javaj2sdk1-3docguidermi-iioprmi_iiop_pg.html
对你出现的情况有比较详细的说明。
E:javaj2sdk1-3docguidermi-iioprmi_iiop_pg.html
对你出现的情况有比较详细的说明。
|
是不是没有配置相关的jndi name呢?在程序中调用ejb是通过jndi name调用的,不是直接找到它的对应类的。