当前位置: 技术问答>java相关
哪位部署过j2ee的高手知道这是怎麽回事?javax.naming.NoInitialContextException:Need to...
来源: 互联网 发布时间:2015-08-29
本文导语: 我在客户端用Jbuilder一运行Client.java就出现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.Nami...
我在客户端用Jbuilder一运行Client.java就出现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.....
at javax.naming......
at Client.java 10
我知道我这个Client程序在运行是需要给个参数,但在Jbuilder的Run里的VM parameter里如果一给参数Hello,
Remote Object!运行时就报错!说找不到main方法,但我已经在Run里给了Client了,这是怎麽回事?请高手指点!
///////////////////Client.java///////////////////////////
import java.rmi.*;
import javax.ejb.*;
import javax.naming.*;
import javax.rmi.*;
public class Client {
public static void main(String[] args){
try{
javax.naming.Context initContext=new javax.naming.InitialContext();
Object obj=initContext.lookup("HelloWorld");
RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
RemoteInterface remote=home.create();
String receiveFromRemote=remote.message("Hello,Remote Object!");
System.out.println("Client Received from Remote Object:""+receiveFromRemote+""");
}
catch(Exception e){
e.printStackTrace();
}
}
}
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.....
at javax.naming......
at Client.java 10
我知道我这个Client程序在运行是需要给个参数,但在Jbuilder的Run里的VM parameter里如果一给参数Hello,
Remote Object!运行时就报错!说找不到main方法,但我已经在Run里给了Client了,这是怎麽回事?请高手指点!
///////////////////Client.java///////////////////////////
import java.rmi.*;
import javax.ejb.*;
import javax.naming.*;
import javax.rmi.*;
public class Client {
public static void main(String[] args){
try{
javax.naming.Context initContext=new javax.naming.InitialContext();
Object obj=initContext.lookup("HelloWorld");
RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
RemoteInterface remote=home.create();
String receiveFromRemote=remote.message("Hello,Remote Object!");
System.out.println("Client Received from Remote Object:""+receiveFromRemote+""");
}
catch(Exception e){
e.printStackTrace();
}
}
}
|
他是说你在lookup ejb的时候,环境变量里没有给定需要查找的目标的环境变量的
值,一般而言,需要在new InitialContext的时候给出一个环境变量,具体的实现类视服务器不同,给个jboss的例子先
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
Context context=new InitialContext(props);
好像jbuilder能根据不同的服务器生成不同的客户端代码
要是你想方便一点用,就拷贝一个jndi.properties文件
要么,就在服务器里找,写个jsp最方便了,呵呵
值,一般而言,需要在new InitialContext的时候给出一个环境变量,具体的实现类视服务器不同,给个jboss的例子先
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
Context context=new InitialContext(props);
好像jbuilder能根据不同的服务器生成不同的客户端代码
要是你想方便一点用,就拷贝一个jndi.properties文件
要么,就在服务器里找,写个jsp最方便了,呵呵
|
似乎是你的JNDI的问题,你设置好了么?
|
to jcreatorqijiashe(七家社) 是。(要不去哪里找stub?)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。