用EJB3.0编写一个远程访问组件,组件写好了,客户端写好了之后测试没问题!
由于没界面,新建了个Web Project,打算在JSP下测试,javaBean也没问题。jndi.properties文件放在src目录下。
jar包放在WebRoot\WEB-INF\lib下,并且在Build Path下添加进来了,组件和Web项目均部署成功,都在JBoss下。
现在问题来了,一运行我的JSP页面,就报错,错误信息大概是找不到类之类的
报错信息:
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:175)
at wingle.javabean.WingleJavaBean.testshowMusicPlayList(WingleJavaBean.java:19)
at wingle.javabean.WingleJavaBean.main(WingleJavaBean.java:40)
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)错误然而把javaBean中的代码弄到客户端去测试,可以通过,没什么问题。但是在javaBean中却怎么也通不过。
感觉javaBean其实就是一个类,和客户端的类差不多,代码可以完全一样,测试时为什么有这么大的差异呢?请高手指点迷津,是不是我的步骤和配置什么地方有问题......

解决方案 »

  1.   

    企业级JAVABEAN没怎么玩过,不太少熟悉。顶上去。
      

  2.   

    看报错信息是无法实例化类:org.jnp.interfaces.NamingContextFactory具体的不是很清楚up
      

  3.   

    关于初始化Context的信息都放在jndi.properties文件中了,该文件放在src下,为什么会有这样的错误呢?费解
      

  4.   

    这东西没怎么接触过。我想是不是在客户端测试时,容器是由服务器初始化的,而在javaBean中,容器需要自己手动初始化呢?
    请教!!请教!!
      

  5.   

    把%JBOSS_HOME%/client/jnp-client.jar放到你的classpath中就OK了
      

  6.   

    我猜应该是properties 找不到,你看一下你的classes目录中有没有属性文件
      

  7.   


    你是说Jboss\jboss-4.2.2.GA\client下的jnp-client.jar包吗?这个有没什么问题
      

  8.   

    把client目录下的jar包全部加到classpath中,懒惰的做法! -_-
      

  9.   


    \jboss-4.2.3.GA\client\* 下的所有jar都要引入