??xml version="1.0" encoding="utf-8" standalone="yes"?> EJB 是基于哪些技术实现的Qƈ说出 SessionBean ?EntityBean 的区别, StatefulBean ?StatelessBean 的区别? 从生命周期上分: EJB 的角色和三个对象 以及remote 接口?home 接口主要作用 EJB 容器提供的服?/strong> EJB 规范规定 EJB 中禁止的操作有哪些? bean 实例的生命周? EJB 的激zL? 客服端调?EJB 对象的几个基本步?/strong> 应用服务?/strong> 应用服务器有那些Q? 如何l?weblogic 指定大小的内?? EJB 需直接实现它的业务接口?Home 接口吗,Lq理由? 如何讑֮?weblogic 的热启动模式 ( 开发模?) 与品发布模?? 如何启动时不需输入用户名与密码 ? weblogic 理制台中对一个应用域 ( 或者说是一个网?,Domain) q行 jms ?ejb 或连接池{相关信息进行配|后 , 实际保存在什么文件中 ? 说说 weblogic 中一?Domain 的缺省目录结?? 比如要将一个简单的 helloWorld.jsp 攑օ何目录下 , 然的在浏览器上就可打?http:// L : 端口?//helloword.jsp 可以看到运行结果了 ? 又比如这其中用到了一个自己写?javaBean 该如何办 ? ?weblogic 中发?ejb 需涉及到哪些配|文? 如何查看?weblogic 中已l发布的 EJB?
{: Java Bean 是可复用的组Ӟ?Java Bean q没有严格的规范Q理ZԌM一?Java c都可以是一?Bean 。但通常情况下,׃ Java Bean 是被容器所创徏Q如 Tomcat) 的,所?Java Bean 应具有一个无参的构造器Q另外,通常 Java Bean q要实现 Serializable 接口用于实现 Bean 的持久性?Java Bean 是不能被跨进E访问的?Enterprise Java Bean 是分布式lg。它是基?Java 的远E方法调用( RMI Q技术的Q所?EJB 可以被远E访问(跨进E、跨计算机)。但 EJB 必须被布|在诸如 Webspere ?WebLogic q样的容器中Q?EJB 客户从不直接讉K真正?EJB lgQ而是通过其容器访问?EJB 容器?EJB lg的代理, EJB lg由容器所创徏和管理。客户通过容器来访问真正的 EJB lg?
{: EJB 包括 Session Bean ?Entity Bean ?Message Driven Bean Q基?JNDI ?RMI ?JAT {技术实现?
从功能上Ԍ
SessionBean 被用来完成一些服务器端的业务操作Q例如访问数据库、调用其?EJB lg?br />EntityBean 被用来代表应用系l中用到的数据?
对于客户机, SessionBean 是一U非持久性对象,它实现某些在服务器上q行的业务逻辑?br />Session Bean q可以再l分? Stateful Session Bean ? Stateless Session Bean Q这两种? Session Bean 都可以将pȝ逻辑攑֜ method 之中执行Q不同的?Stateful Session Bean 可以记录呼叫者的状态,因此通常来说Q一个用者会有一个相对应? Stateful Session Bean 的实体?Stateless Session Bean 虽然也是逻辑lgQ但是他却不负责记录使用者状态,也就是说当用者呼? Stateless Session Bean 的时候, EJB Container q不会找ȝ定的 Stateless Session Bean 的实体来执行q个 method 。换a之,很可能数个用者在执行某个 Stateless Session Bean ? methods Ӟ会是同一? Bean ? Instance 在执行。从内存斚w来看Q? Stateful Session Bean ? Stateless Session Bean 比较Q? Stateful Session Bean 会消? J2EE Server 较多的内存,然? Stateful Session Bean 的优势却在于他可以维持用者的状态?
对于客户机, EntityBean 是一U持久性对象,可分?Bean 理的持l性( BMP Q和容器理的持l性( CMP Q两U?。它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用E序实现的实体?
SessionBean Q?Stateless Session Bean 的生命周期是由容器决定的Q当客户机发求要建立一?Bean 的实例时Q?EJB 容器不一定要创徏一个新?Bean 的实例供客户用,而是随便找一个现有的实例提供l客h。当客户机第一ơ调用一?Stateful Session Bean Ӟ容器必须立即在服务器中创Z个新?Bean 实例Qƈ兌到客h上,以后此客h调用 Stateful Session Bean 的方法时容器会把调用分派C此客h相关联的 Bean 实例?
EntityBean Q?Entity Beans 能存zȝ对较长的旉Qƈ且状态是持箋的。只要数据库中的数据存在Q?Entity beans ׃直存zR而不是按照应用程序或者服务进E来说的。即?EJB 容器崩溃了, Entity beans 也是存活的?Entity Beans 生命周期能够被容器或? Beans 自己理?
EJB 通过以下技术管理实务:对象理l织Q?OMG Q的对象实务服务Q?OTS Q, Sun Microsystems ?Transaction Service Q?JTS Q?Java Transaction API Q?JTA Q,开发组Q?X/Open Q的 XA 接口?
{: 一个完整的Z EJB 的分布式计算l构由六个角色组成,q六个角色可以由不同的开发商提供Q每个角色所作的工作必须遵@ Sun 公司提供?EJB 规范Q以保证彼此之间的兼Ҏ。这六个角色分别?EJB lg开发者( Enterprise Bean Provider Q? 、应用组合者( Application Assembler Q、部|者( Deployer Q?EJB 服务器提供者( EJB Server Provider Q?EJB 容器提供者( EJB Container Provider Q、系l管理员Q?System Administrator Q?
三个对象?Remote Q?Local Q接口?Home Q?LocalHome Q接口, Bean c?
remote 接口定义了业务方法,用于 EJB 客户端调用业务方法?
home 接口?EJB 工厂用于创徏和移除查?EJB 实例
{: 主要提供声明周期理、代码生、持l性管理、安全、事务管理、锁和ƈ发行理{服务?
{: 1. 不能操作U程和线E?API( U程 API 指非U程对象的方法如 notify,wait {?) Q?2. 不能操作 awt Q?3. 不能实现服务器功能, 4. 不能寚w态属生存取, 5. 不能使用 IO 操作直接存取文gpȝQ?6. 不能加蝲本地?. Q?7. 不能?this 作ؓ变量和返回, 8. 不能循环调用?
{: 对于 Stateless Session Bean ?Entity Bean ?Message Driven Bean 一般存在缓冲池理Q而对?Entity Bean ?Statefull Session Bean 存在 Cache 理Q通常包含创徏实例Q设|上下文、创?EJB Object Q?create Q、业务方法调用?remove {过E,对于存在~冲池管理的 Bean Q在 create 之后实例q不从内存清除,而是采用~冲池调度机制不断重用实例,而对于存?Cache 理?Bean 则通过ȀzdLzL制保?Bean 的状态ƈ限制内存中实例数量?
{: ?Stateful Session Bean ZQ其 Cache 大小军_了内存中可以同时存在?Bean 实例的数量,Ҏ MRU ?NRU 法Q实例在ȀzdLzȝ态之间迁U,ȀzL制是当客L调用某个 EJB 实例业务ҎӞ如果对应 EJB Object 发现自己没有l定对应?Bean 实例则从其去Ȁz?Bean 存储中(通过序列化机制存储实例)回复Q激z)此实例。状态变q前会调用对应的 ejbActive ?ejbPassivate Ҏ?
{: 讄 JNDI 服务工厂以及 JNDI 服务地址pȝ属性,查找 Home 接口Q从 Home 接口调用 Create Ҏ创徏 Remote 接口Q通过 Remote 接口调用其业务方法?/p>
{: BEA WebLogic Server Q?IBM WebSphere Application Server Q?Oracle9i Application Server Q?jBoss Q?Tomcat
{: 在启?Weblogic 的脚本中Q位于所?Domain 对应服务器目录下?startServerName Q,增加 set MEM_ARGS=-Xms32m -Xmx200m Q可以调整最内存ؓ 32M ,最?200M?/p>
{:q程接口?Home 接口不需要直接实玎ͼ他们的实C码是由服务器产生的,E序q行中对应实现类会作为对应接口类型的实例被用?/p>
{: 可以在管理控制台中修改对应服务器的启动模式ؓ开发或产品模式之一。或者修Ҏ务的启动文g或?commenv 文gQ增?set PRODUCTION_MODE=true ?
{: 修改服务启动文gQ增? WLS_USER ?WLS_PW V也可以?boot.properties 文g中增加加密过的用户名和密?.
{: 保存在此 Domain ?config.xml 文g中,它是服务器的核心配置文g?
{: Domain 目录服务器目?applications Q将应用目录攑֜此目录下可以作为应用访问,如果?Web 应用Q应用目录需要满?Web 应用目录要求Q?jsp 文g可以直接攑֜应用目录中, Javabean 需要放在应用目录的 WEB-INF 目录?classes 目录中,讄服务器的~省应用可以实现在览器上无需输入应用名?
{: 不同cd?EJB 涉及的配|文件不同,都涉及到的配|文件包?ejb-jar.xml,weblogic-ejb-jar.xmlCMP 实体 Bean 一般还需?weblogic-cmp-rdbms-jar.xml
86 、如何在 weblogic 中进?ssl 配置与客L的认证配|或说说 j2ee( 标准 ) q行 ssl 的配|?
~省安装中?DemoIdentity.jks ?DemoTrust.jks KeyStore 实现 SSL Q需要配|服务器使用 Enable SSL Q配|其端口Q在产品模式下需要从 CA 获取U有密钥和数字证书,创徏 identity ?trust keystore Q装载获得的密钥和数字证书。可以配|此 SSL q接是单向还是双向的?
{: 可以使用理控制収ͼ在它?Deployment 中可以查看所有已发布?EJB
说说?weblogic 中开发消?Bean 时的 persistent ?non-persisten 的差?
persistent 方式?MDB 可以保证消息传递的可靠?, 也就是如?EJB 容器出现问题?JMS 服务器依然会消息在?MDB 可用的时候发送过来,?non Q?persistent 方式的消息将被丢弃?br />
]]>
]]>
SVN官方|站Q?a >http://subversion.tigris.org/
SVN中文官方|站Q?a >http://subversion.tigris.org.cn/
SVN和其它版本控制Y件的比较Q?a >http://robinlet.bokee.com/2866408.html
如何从CVSq渡到SVN:http://cvs2svn.tigris.org/
SVN的客L:http://tortoisesvn.tigris.org
SVN的Eclipse集成Q徏议直接从官方|站直接update
二,qx是否l常会自己写一些东西呢Q或者ؓ了兴,或者ؓ了测试某些东西,q些东西不知道那天就用的刎ͼ如果不小心丢了挺可惜的,而且q程有时也很重要。这个时候,使用一个版本控制Y件是好的选择Q但是哪个更好用呢,q里介绍一下SVN的本地方式,个h感觉很好?
1,安装本地SVN:
到这?http://tortoisesvn.tigris.org下蝲SVN的客LtortoisesvnQ然後安装,完成后重P他就自动集成到Windows的资源管理器中了Q如图所C个时候本地SVN安装完了,是否很简单呢
2Q用SVN:
建立Local Repository,在你想保存SVN版本控制文g的地方右键,如图选择
完成后,你就可以试d工程:
对话框内填入的目录是你刚才选择的存攄本文件的目录
好了Q换一个文件夹Q尝试checkout,更改Q提交,Ҏ{功能吧,基本和cvs使用差不多,但是增加了原子递交{功?
3,可以安装了eclipse的插Ӟq样使用h会更方便?br />
附:视频教程http://www.subversion.org.cn/media/all.swf
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=251769