测试EJB实体bean出错!

itzyjr 2012-12-05 04:03:01
异常信息:
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at com.entity.Test.main(Test.java:13)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
... 4 more


类层次结构:

Test.java:
package com.entity;
import javax.naming.*;
import java.util.Properties;
import java.util.List;
import java.util.Iterator;
public class Test {
public static void main(String args[]){
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try {
InitialContext ctx = new InitialContext(props);
PersonFacadeRemote persondao = (PersonFacadeRemote) ctx.lookup("java:PersonFacade/remote");
List<Person> list=persondao.findAll();
Iterator<Person> it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println("人员编号:"+ p.getPersonid() + "\t姓名:"+ p.getPersonName() + "<Br>");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

我用单独的web测试都可行,为何在包里用含main的简单java类就不能测试通过呢??????
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
itzyjr 2012-12-12
  • 打赏
  • 举报
回复
具体怎么导入?导入哪些文件有要求吗?导入后就可直接
itzyjr 2012-12-12
  • 打赏
  • 举报
回复
我导入包后,再运行"run as java application",出错: 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 examples.AccountClient.main(AccountClient.java:22)
yhm_new 2012-12-12
  • 打赏
  • 举报
回复
确保导入ejb所需要的jar包
itzyjr 2012-12-05
  • 打赏
  • 举报
回复
我就是想知道,如何用一个简单的java含main程序测试entity bean,最好给出代码!
itzyjr 2012-12-05
  • 打赏
  • 举报
回复
如果我去掉下面语句:
Properties props = new Properties(); 
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); 
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
又出错: 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.entity.Test.main(Test.java:11)

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧