1.要在Eclipse中JRE类库中加入%JBOSS_HOME%/client/jbossall-client.jar 否则会抛出异常:
Exception in thread "main" 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 org.wind.unit.TestCalculator.main(TestCalculator.java:18)
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
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
2.在MyEclipse创建EJB客户端项目时,需要手动创建jndi.properties也可以在将%JBOSS_HOME%\server\all\conf\jndi.properties复制到项目中,也可以在CODE中使用Properties类或者Hashtable类创建一个jndi,否则找不到JNDI而抛出异常:
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 org.wind.unit.TestCalculator.main(TestCalculator.java:30)
3.将jndi.properties复制到项目中之后,要在jndi.properties中加入java.naming.provider.url=localhost:1099 (不一定是localhost:1099根据开发需要可能会更改)否则会抛出异常:
Exception in thread "main" javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1465)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1594)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.wind.unit.TestCalculator.main(TestCalculator.java:30)
Caused by: java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive0(Native Method)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
at java.net.DatagramSocket.receive(DatagramSocket.java:712)
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1435)
... 5 more
使用Propertie类:
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
InitialContext ict=new InitialContext(props);
使用Hashtable:
Hashtable<String, String> prop=new Hashtable<String, String>();
prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
prop.put(Context.PROVIDER_URL, "localhost:1099");
InitialContext ict=new InitialContext(prop);
4.JNDI命名规则是 EAR包名/Bean名称/remote(local) 若没有EAR包则直接是Bean名称/remote(local)。
5.当使用local时 要注意测试的时候一定要保证都在一个JVM中。
6.创建Session Bean时要注意自己使用的是有状态(@Stateful)还是无状态(@Stateless)
分享到:
相关推荐
你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在JBOSS和MyEclipse环境下的开发流程。通过这个初体验,你可以了解到...
### Java+MyEclipse+MySQL+JBoss环境配置详解 #### 一、环境配置概述 本文将详细介绍如何在Windows XP SP3操作系统上配置Java、MyEclipse、...通过本文的指导,即使是初学者也能快速上手,建立起自己的开发环境。
本教程将详细讲解如何在MyEclipse中配置WebLogic服务器,这对初学者来说非常有帮助。 1. **禁用默认应用服务器**: 在开始配置WebLogic前,首先需要禁用MyEclipse默认的应用服务器——JBoss。在“窗口首选项”菜单...
### MyEclipse+EJB3+JBoss4部署EJB+Web项目HelloWorld详解 #### 一、环境搭建 ...这个过程涵盖了环境搭建、项目创建、部署及测试等多个方面,有助于初学者更好地理解 Java EE 技术栈中的这些组件是如何协同工作的。
【JBoss Myeclipse EJB3 First Demo】是面向初学者的一个教程,旨在引导大家了解并实践EJB3(Enterprise JavaBeans 3)技术。EJB3是Java EE(Java Platform, Enterprise Edition)规范的一部分,它提供了一种用于...
本项目的代码虽然简单,但对于初学者来说,是一个很好的实践平台,可以帮助理解EJB3.0在实际项目中的应用,同时也能加深对Java EE架构和开发流程的理解。通过这个实验,你可以了解到如何利用EJB3.0的特性来构建可...
【标题】"MyEclipse+6+Java.rar_myeclipse" 指的是一个关于MyEclipse 6版本,...这个压缩包提供的资源对于初学者和有一定经验的开发者来说都是宝贵的,通过学习,可以迅速掌握MyEclipse 6的使用,提升Java开发能力。
### 利用Myeclipse 6与JBoss开发EJB3入门实例详解 #### 一、概述 本文将详细介绍如何使用Myeclipse 6和JBoss来开发一个EJB3入门...这对于初学者来说是一个很好的起点,有助于进一步深入理解EJB3技术及相关开发工具。
《MyEclipse6+Java开发中文教程电子书》是一份专为初学者和进阶者设计的详尽指南,旨在帮助读者掌握MyEclipse6与Java编程的集成开发环境(IDE)使用技巧。MyEclipse作为Eclipse的扩展,提供了更丰富的功能,尤其在...
【MyEclipse+6+Java+开发中文教程】 MyEclipse是基于Eclipse的一款强大的集成开发环境(IDE),尤其在Java应用程序开发方面表现卓越。...同时,对于初学者,本教程也是快速入门Java开发的良好起点。
本实例专注于PHP调用Web服务以及使用MyEclipse创建Web服务的详细过程,这对于初学者来说是一个很好的学习资源。 首先,让我们深入理解PHP调用Web服务的概念。Web服务通常基于SOAP(Simple Object Access Protocol)...
综上所述,《MyEclipse6 Java开发中文教程》不仅覆盖了Java开发的基础知识,还深入探讨了MyEclipse这一强大的IDE的各项功能与应用,非常适合Java初学者以及希望提高Web开发技能的开发者参考学习。
这个项目对于学习Java Web开发的初学者来说是一个很好的实践案例,有助于理解并掌握相关技术。 1. **MyEclipse**: MyEclipse是Eclipse的扩展版本,专为Java EE开发者提供了一个集成开发环境。它包含了对Java、JSP、...
JavaWeb MyEclipse基本使用教程是一份针对初学者的指南,旨在帮助他们掌握这款强大的集成开发环境(IDE)——MyEclipse。MyEclipse是基于Eclipse平台开发的一款专业级的Java Web应用开发工具,它提供了丰富的功能,...
MyEclipse作为一款深受开发者喜爱的Java开发工具,它基于Eclipse平台,为Java、J2EE项目的开发提供了丰富的功能和...无论你是初学者还是经验丰富的开发人员,MyEclipse都能为你提供强有力的支持,提升你的开发效率。
《MyEclipse 6.5中文开发手册》是针对初学者和Java或Java Web开发者的一份详尽指南,旨在帮助用户充分利用MyEclipse 6.5的强大功能进行软件开发。MyEclipse是一款集成开发环境(IDE),专为Java、J2EE及Web应用设计...
本教程针对MyEclipse 6版本,旨在帮助初学者和有经验的开发者深入理解如何使用这个工具进行Java应用程序和Web项目的开发。 1. **MyEclipse 6简介** MyEclipse 6是Genuitec公司推出的一代经典版本,它在Eclipse 3.2...