前面的Hello.java程序中有这么一段:
Properties environment = new Properties();
environment.put(Context.PROVIDER_URL, "localhost:1099");
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
.....
initialContext = new InitialContext(environment);
按照我的理解这段程序相当于从"localhost"这个容器中取得当前的环境变量.既然是本地的为什么还要把environment参数传进去呢.
直接initialContext = new InitialContext(); 不行吗?其实是可以的,只要修改ejb-jar.xml:
<!---->
<!---->http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar></ejb-jar>
<description></description>
<display-name></display-name>Generated by XDoclet
<enterprise-beans></enterprise-beans>
<!---->
<session></session>
<description></description>
<display-name></display-name>Name for Hello
<ejb-name></ejb-name>HelloWorld
<home></home>com.rox.HelloHome
<remote></remote>com.rox.HelloWorld
<ejb-class></ejb-class>com.rox.Hello
<session-type></session-type>Stateless
<transaction-type>
</transaction-type>
Container
<ejb-ref></ejb-ref>
<ejb-ref-name></ejb-ref-name>com.rox.HelloEntityHome
<ejb-ref-type></ejb-ref-type>Entity
<home></home>com.rox.HelloEntityHome
<remote></remote>com.rox.HelloEntityInterface
<ejb-link></ejb-link>HelloEntityInterface
<!---->
<!---->
<entity></entity>
<description></description>
<display-name></display-name>Name for HelloEntity
<ejb-name></ejb-name>HelloEntityInterface
<home></home>com.rox.HelloEntityHome
<remote></remote>com.rox.HelloEntityInterface
<ejb-class></ejb-class>com.rox.HelloEntity
<persistence-type></persistence-type>
Container
<prim-key-class></prim-key-class>
java.lang.Integer
<reentrant></reentrant>False
<cmp-version></cmp-version>2.x
<abstract-schema-name></abstract-schema-name>HelloEntity
<cmp-field></cmp-field>
<field-name></field-name>helloNo
<cmp-field></cmp-field>
<field-name></field-name>helloName
<primkey-field></primkey-field>
helloNo
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<assembly-descriptor></assembly-descriptor>
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
注意红色的内容,那就是问题的关键.至于其中的原理,我仍在思考.
改变了ejb-jar.xml相应的需要修改Hello.java:
将原来的:
Object obj = initialContext.lookup("ejb/HelloEntity");
替换为:
Object obj = initialContext.lookup("java:comp/env/"+HelloEntityHome.class.getName());
按照我的理解comp是容器,env是环境,意思是从当前环境中lookup "HelloEntityHome.class.getName()".
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Eclipse IDE与JBoss应用程序服务器(版本7.x)来开发和部署一个基于EJB 3.x的简单企业级Java应用程序。EJB(Enterprise JavaBeans)是Java平台上的核心组件,它提供了一种标准的...
在"一个完整的Helloworld"示例中,我们将深入理解EJB 2.0的基础知识,包括Bean的类型、接口、生命周期管理以及如何在实际项目中部署和运行。 ### 1. EJB Bean类型 EJB 2.0主要包括三种类型的Bean: - **Session ...
第一章 前言......4 1.1 本教程适合人群4 1.2 联系作者..4 第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用...
标题"jboss ejb 3.zip"和描述中的"jboss ejb 3.zip"都指向同一个主题,即JBoss企业级JavaBean(EJB)3.0版本的相关内容。JBoss是Red Hat公司的一个开源应用服务器,而EJB是Java平台上用于构建可扩展、分布式、安全和...
第一章 前言......4 1.1 本教程适合人群4 1.2 联系作者..4 第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用...
在IT行业中,Java企业版(Java EE)是一个广泛使用的平台,用于构建分布式、多层的企业级应用程序。EJB(Enterprise JavaBeans)是Java EE的重要组成部分,它提供了一种规范来创建可部署在服务器上的组件,以实现...
- **JBOSS集成环境中的WEB应用调用EJB**: - 在同一服务器上配置JBOSS和Tomcat以实现无缝通信。 #### 3. 开发前的准备 - **熟悉JBOSS目录结构**: - `bin`:包含启动脚本。 - `client`:用于客户端连接的JAR...
在Java企业级应用开发中,EJB(Enterprise JavaBeans)和Hibernate是两个非常重要的组件。EJB主要用于构建可部署在Java EE服务器上的分布式组件,而Hibernate是一个强大的对象关系映射(ORM)框架,解决了Java与...
【ejb】是一个Java企业级应用开发的重要组件,全称为Enterprise JavaBeans,它提供了一种在分布式环境中构建可复用、安全和事务处理的应用服务框架。ejb是Java EE(Java Platform, Enterprise Edition)规范的一部分...
- 接着,在“MyEclipse”菜单下的“Servers”选项中找到“JBoss”子菜单,选择“JBoss4.x”进行相应的配置。特别注意: - 需要确保路径正确指向jBoss的目录,特别是“bin”目录,系统会自动识别并加载此目录下的...
EJB是Java EE规范的一部分,它提供了一种标准的方式来实现业务逻辑,分为三种主要类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。会话Bean用于处理客户端请求...
EJB3(Enterprise JavaBeans 3.0)是Java EE平台中的一个核心组件,它提供了一种标准的方式来创建可部署在服务器上的分布式、面向服务的企业级应用程序。EJB3引入了许多改进,包括简化API、注解驱动的开发和依赖注入...
EJB3是Java EE平台中的一个核心组件,它极大地简化了企业级Java组件的开发,通过注解驱动和POJO(Plain Old Java Object)模型,降低了EJB的复杂性。 1. **EJB3概述** EJB3是Java EE6规范中的重要部分,它引入了...
2. 测试工具:JBoss提供了一个名为jbossclient的命令行工具,可以用于远程调用EJB进行测试。 七、EJB与Web应用集成 1. JSP和Servlet:在Web应用中,可以通过JSP和Servlet来调用EJB,实现前端和后端的交互。 2. Web...
2.2 运行一个EJB3例子..................................................................................................................................................9 2.3 在独立的TOMCAT 中调用EJB.......
- 创建一个测试类(例如 `EjbTest`),用于测试实体 Bean 的功能。 - 导入必要的包(如 `javax.naming.InitialContext`、实体 Bean 接口等)。 - 使用 JNDI 查找实体 Bean 的远程接口,并调用其方法进行测试。 ...
总结,Jboss下的EJB应用开发,特别是会话Bean的运用,是Java EE开发中的重要技能。通过理解EJB的基本概念,熟悉Jboss环境配置,以及掌握会话Bean的编写、部署和测试,开发者可以构建高效、可靠的企业级应用程序。在...
4. **部署与调用**:EJB 3.0的Web服务可以通过应用程序服务器(如JBoss, GlassFish, WebLogic等)进行部署,并通过标准的HTTP/HTTPS协议进行调用。 **源码与工具** 在实际开发中,了解EJB 3.0源码可以帮助理解其...