myeclipse10,jboss7.1 final
建了一个服务器端的EJB工程,写了个接口,一个实现类,实现类里写了@Stateless @Remote
又建了个客户端的JAVA工程,把服务器端的接口打了个JAR包,添加到客户端里去了。JBOSS的LIB里的JAR包也全拷进去了。
还写了个jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
启动JBOSS没问题,我也部署了,但是启动时控制台上却没有输出部署文件的信息,只有输出JBOSS启动的一些基本信息,我在JBOSS目录里也看了,是有ebj01.jar这个文件夹的,里面也有接口和实现类的class文件。
现在在客户端调用的时候出现问题
Exception in thread "main" 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:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.accp.ejb.FirstEjbClient.main(FirstEjbClient.java:10)
ejb入门问题javax.naming.NoInitialContextException
答案:2 悬赏:80
解决时间 2021-02-19 14:33
- 提问者网友:无悔疯狂
- 2021-02-19 00:45
最佳答案
- 二级知识专家网友:没感情的陌生人
- 2021-02-19 01:27
jndi.properties 要放在类路径的根下,比如 classes 目录下,如果是打包在 jar 中它在 jar 中但不应该在 jar 中的任何子目录中。
另外程序在用时除了使用 jndi.properties 这个静态的办法,还有一个 new InitialContext(properties) 这种方法,这时的 properties 可以是从某个 properties 文件中读取的,也可以是代码计算并填充出来的。
还有一个种低优先级的在命令行添加 -Djava.naming.factory.initial= ... 这种方法。
我们需要确认服务端 ejb jar 确实被部署了,在客户端这个 jndi 参数文件确实放在了正确的位置。
另外程序在用时除了使用 jndi.properties 这个静态的办法,还有一个 new InitialContext(properties) 这种方法,这时的 properties 可以是从某个 properties 文件中读取的,也可以是代码计算并填充出来的。
还有一个种低优先级的在命令行添加 -Djava.naming.factory.initial= ... 这种方法。
我们需要确认服务端 ejb jar 确实被部署了,在客户端这个 jndi 参数文件确实放在了正确的位置。
全部回答
- 1楼网友:许你一世温柔
- 2021-02-19 01:51
properties props =new properties();
props.put(context.initial_context_factory, "weblogic.jndi.wlinitialcontextfactory ");
props.put(context.provider_url, "t3://127.0.0.1:7001 ");
context ctx = new initialcontext(props);
你的上下文中没有hs
initialcontext ctx = new initialcontext(hs);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯