﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-漫步红林-文章分类-EJB3</title><link>http://www.blogjava.net/hyint/category/37807.html</link><description>品味技术与生活之间的差距，追求代码与国画之间艺术的差距。</description><language>zh-cn</language><lastBuildDate>Sat, 21 Feb 2009 15:14:32 GMT</lastBuildDate><pubDate>Sat, 21 Feb 2009 15:14:32 GMT</pubDate><ttl>60</ttl><item><title>Web 容器 与 EJB 容器的认识</title><link>http://www.blogjava.net/hyint/articles/255941.html</link><dc:creator>苦瓜</dc:creator><author>苦瓜</author><pubDate>Sat, 21 Feb 2009 04:59:00 GMT</pubDate><guid>http://www.blogjava.net/hyint/articles/255941.html</guid><wfw:comment>http://www.blogjava.net/hyint/comments/255941.html</wfw:comment><comments>http://www.blogjava.net/hyint/articles/255941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyint/comments/commentRss/255941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyint/services/trackbacks/255941.html</trackback:ping><description><![CDATA[<strong><span style="color: red"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请对以下在J2EE中常用的名词进行解释(或简单描述)。<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">&nbsp;<span style="font-family: 宋体">J2EE 容器为 J2EE 应用程序组件提供运行时支持。J2EE 应用程序组件使用容器的协议和方法访问服务器提供的其他应用程序组件和服务。Application Server 提供了应用程序客户机容器、小应用程序容器、Web 容器和 EJB 容器。</span><br style="font-family: " />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.&nbsp;web容器：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 给处于其中的应用程序组件（JSP，SERVLET）提供一个环境，使JSP,SERVLET直接更容器中的环境变量接口交互，不必关注其它系统问题。主要有WEB服务器来实现。例如：TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web 容器中的 HTTP 会话设置。HTTP 会话是唯一将状态数据写入持久性存储的 Web 会话。<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: red">_1、</span><span style="color: #ff0000">设置会话超时值</span></strong>，请执行以下步骤：<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _1.1&nbsp; &nbsp;在树组件中，选择&#8220;配置&#8221;节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _1.2&nbsp;&nbsp; 选择要配置的实例：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a．要配置特定的实例，请选择该实例的配置节点。例如，对于默认实例 <code class="cCode">server</code>，请选择 <code class="cCode">server-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b．要配置所有实例的默认设置，请选择 <code class="cCode">default-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_1.3&nbsp;&nbsp; 选择&#8220;Web 容器&#8221;节点。&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;_1.4&nbsp; 单击&#8220;会话属性&#8221;选项卡。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _1.5&nbsp; 在&#8220;会话超时&#8221;字段中，输入会话有效的秒数。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _1.6&nbsp; 单击&#8220;保存&#8221;。<br />
<h4 class="pHeading3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">&nbsp;_2、</span> <span style="color: #ff0000">配置管理器属性</span> </h4>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会话管理器使您可以配置如何创建和销毁会话、存储会话状态的位置以及会话的最大数目。&nbsp;要更改会话管理器设置，<br />
请执行以下步骤：&nbsp;<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.1&nbsp;&nbsp; 在树组件中，选择&#8220;配置&#8221;节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.2&nbsp;&nbsp; 选择要配置的实例：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.&nbsp; 要配置特定的实例，请选择该实例的配置节点。例如，对于默认实例 <code class="cCode">server</code>，请选择 <code class="cCode">server-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b. 要配置所有实例的默认设置，请选择 <code class="cCode">default-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.3&nbsp; 选择&#8220;Web 容器&#8221;节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.4&nbsp; 单击&#8220;管理器属性&#8221;选项卡。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.5&nbsp; 设置&#8220;Reap 时间间隔&#8221;的值。Reap 时间间隔&#8221;字段是从存储中删除不活动的会话数据之前的秒数。&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.6&nbsp; 设置&#8220;最大会话数&#8221;的值。&#8220;最大会话数&#8221;字段是允许的最大会话数目。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.7&nbsp; 设置&#8220;会话文件名&#8221;的值。 &#8220;会话文件名&#8221;字段是包含会话数据的文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _&nbsp;2.8&nbsp; 设置&#8220;会话 ID 生成器类名&#8221;的值。 </p>
<p class="pStepParaI1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;会话 ID 生成器类名&#8221;字段使您可以指定用于生成唯一的会话 ID 的自定义类。每个服务器实例只允许有一个会话 ID 生成器类，并且群集中的所有实例必须使用同一会话 ID 生成器，以防止会话密钥冲突。 </p>
自定义会话 ID 生成器类必须实现 <code class="cCode">com.sun.enterprise.util.uuid.UuidGenerator</code> 接口：<br />
<p class="pScreenText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;package com.gzjp.cont.util.uuid;&nbsp;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public interface UuidGenerator {&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String generateUuid();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public String generateUuid(Object obj); //obj is the session object&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类必须位于 Application Server 类路径中<br />
</p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _2.9&nbsp; 单击&#8220;保存&#8221;。<br />
<br />
<strong style="color: red">&nbsp;&nbsp;&nbsp; _3. 配置存储属性</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_3.1&nbsp; 在树组件中，选择&#8220;配置&#8221;节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _3.2&nbsp; 选择要配置的实例：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;a&nbsp; 要配置特定的实例，请选择该实例的配置节点。例如，对于默认实例 <code class="cCode">server</code>，请选择 <code class="cCode">server-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;b&nbsp;&nbsp;要配置所有实例的默认设置，请选择 <code class="cCode">default-config</code> 节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _3.3&nbsp; 选择&#8220;Web 容器&#8221;节点。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _3.4&nbsp; 单击&#8220;存储属性&#8221;选项卡。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _3.5&nbsp; 设置&#8220;Reap 时间间隔&#8221;的值。&#8220;Reap 时间间隔&#8221;字段是从存储中删除不活动的会话数据之前的秒数。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _3.6&nbsp; 单击&#8220;保存&#8221;。&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 2.EJB容器：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器，马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 企业 Bean（EJB 组件）是包含商业逻辑的 Java 编程语言服务器组件。EJB 容器提供对企业 Bean 的本地访问和远程访问。容器负责创建企业 Bean、将企业 Bean 绑定到命名服务以使其他应用程序组件可以访问企业 Bean、确保只有授权的客户机才能访问企业 Bean 的方法、将 Bean 的状态保存到持久性存储中、高速缓存 Bean 的状态以及在必要时激活或钝化 Bean。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：邮件服务、事务管理。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1&nbsp; JNDI:(Java Naming &amp; Directory Interface)&nbsp; JAVA命名目录服务。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要提供的功能是：提供一个目录系统，让其它各地的应用程序在其上面留下自己的索引，从而满足快速查找和定位分布式应用程序的功能。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.2&nbsp; JMS：（Java Message Service）JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.3&nbsp; JTA：（Java Transaction API）JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.4&nbsp; JAF：（Java Action FrameWork）JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.5&nbsp;&nbsp; RMI/IIOP:（Remote Method Invocation /internet对象请求中介协议）他们主要用于通过远程调用服务。例如，远程有一台计算机上运行一个程序，它提供股票分析服务，我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。而且RMI是JAVA特有的。 
  <img src ="http://www.blogjava.net/hyint/aggbug/255941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyint/" target="_blank">苦瓜</a> 2009-02-21 12:59 <a href="http://www.blogjava.net/hyint/articles/255941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB 是什么？</title><link>http://www.blogjava.net/hyint/articles/255940.html</link><dc:creator>苦瓜</dc:creator><author>苦瓜</author><pubDate>Sat, 21 Feb 2009 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/hyint/articles/255940.html</guid><wfw:comment>http://www.blogjava.net/hyint/comments/255940.html</wfw:comment><comments>http://www.blogjava.net/hyint/articles/255940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyint/comments/commentRss/255940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyint/services/trackbacks/255940.html</trackback:ping><description><![CDATA[<p style="font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">&nbsp;&nbsp;&nbsp; <span style="font-size: 14pt; font-family: ">EJB是基于哪些技术实现的？SessionBean和EntityBean的区别是什么？StatefulBean和StatelessBean的区别呢？&nbsp;<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EJB包括Session Bean、Entity Bean、Message Driven Bean，基于JNDI、RMI、JAT等技术实现。&nbsp;<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作，例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。&nbsp;<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于客户机，SessionBean是一种非持久性对象，它实现某些在服务器上运行的业务逻辑。&nbsp;<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于客户机，EntityBean是一种持久性对象，它代表一个存储在持久性存储器中的实体的对象视图，或是一个由现有企业应用程序实现的实体。&nbsp;<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean 。<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这两种的 Session Bean都可以将系统逻辑放在 method之中执行，不同的是 Stateful Session Bean 可以记录呼叫者的状态，因此通常来说，一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件，但是他却不负责记录使用者状态，也就是说当使用者呼叫 Stateless Session Bean 的时候，EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之，很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时，会是同一个 Bean 的 Instance 在执行。从内存方面来看， Stateful Session Bean 与 Stateless Session Bean 比较， Stateful Session Bean 会消耗 J2EE Server 较多的内存，然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 </span></span></p>
  <img src ="http://www.blogjava.net/hyint/aggbug/255940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyint/" target="_blank">苦瓜</a> 2009-02-21 12:12 <a href="http://www.blogjava.net/hyint/articles/255940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>