﻿<?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-insomnia,politic,proficient ,sensible.-随笔分类-关于EJB学习</title><link>http://www.blogjava.net/youngturk/category/19319.html</link><description>The world is a fine place , and worth fighting for it.</description><language>zh-cn</language><lastBuildDate>Fri, 24 Aug 2007 18:42:44 GMT</lastBuildDate><pubDate>Fri, 24 Aug 2007 18:42:44 GMT</pubDate><ttl>60</ttl><item><title>Enterprise Application and MyEclipse Project Overview </title><link>http://www.blogjava.net/youngturk/archive/2007/08/23/138809.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 23 Aug 2007 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/08/23/138809.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/138809.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/08/23/138809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/138809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/138809.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/youngturk/archive/2007/08/23/138809.html'>阅读全文</a><img src ="http://www.blogjava.net/youngturk/aggbug/138809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-08-23 13:24 <a href="http://www.blogjava.net/youngturk/archive/2007/08/23/138809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在 Web 应用程序中配置资源</title><link>http://www.blogjava.net/youngturk/archive/2007/08/10/135749.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Fri, 10 Aug 2007 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/08/10/135749.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/135749.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/08/10/135749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/135749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/135749.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/youngturk/archive/2007/08/10/135749.html'>阅读全文</a><img src ="http://www.blogjava.net/youngturk/aggbug/135749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-08-10 11:23 <a href="http://www.blogjava.net/youngturk/archive/2007/08/10/135749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把WebLogic EJB程序迁移到JBoss上</title><link>http://www.blogjava.net/youngturk/archive/2007/08/08/135293.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Wed, 08 Aug 2007 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/08/08/135293.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/135293.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/08/08/135293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/135293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/135293.html</trackback:ping><description><![CDATA[WebLogic服务器是一款顶级的商业应用程序服务器。但是对于小规模的开发者来说，开发源代码的、基于标准的应用程序服务器JBoss是可以用来替换类似WebLogic或WebSphere等商业应用程序服务器的。不幸的是，在WebLogic中开发的应用程序不能在JBoss中部署。JBoss迁移服务为我们提供了把应用程序迁移到JBoss上的支持。作为代替，通过把厂商特定的部署文件信息迁移到JBoss上，是可能把应用程序迁移到JBoss上的。为了演示如何把应用程序迁移到JBoss的过程，我们将把一个在WebLogic中开发的带有Oracle数据库的EJB应用程序迁移到带有MySQL数据库的JBoss应用程序服务器上。 <br><br>　　<strong>预安装软件 <br></strong><br>　　为了配置MySQL数据库的JDBC连接，需要下载MySQL数据库驱动程序类。 <br><br>　　1．下载MySQL JDBC驱动程序.jar文件 <br><br>　　2．下载和安装MySQL数据库服务器 <br><br>　　3．下载和安装JBoss 4.0应用程序服务器 <br><br>　　开发一个Java应用程序，我们将使用它和XSLT把WebLogic部署文件转换为JBoss部署文件。该部署文件也可以使用XSLT工具进行转换。 <br><br>　　<strong>概述</strong> <br><br>　　在不进行修改的时候，WebLogic中开发的应用程序是不能部署在JBoss中的。JBoss应用程序的部署文件与WebLogic的部署文件不同。在本文中，我们将把一个在WebLogic中开发的实体（entity）EJB应用程序示例迁移到JBoss中，迁移的方法是把WebLogic部署文件转换为JBoss部署文件。 <br><br>　　示例应用程序包含一个Catalog实体EJB。该EJB的bean类（CatalogBean.java）、远程接口（Catalog.java）、和home接口（CatalogHome.java）都在本文下载链接的weblogic-jboss-resources.zip示例文件中。我们将使用MySQL开放源代码数据库来配置JBoss应用程序。把WebLogic EJB应用程序部署到JBoss中并不需要修改实体EJB类，只需要修改该EJB的部署文件。 <br><br>　<strong>　配置JBoss和MySQL <br></strong><br>　　MySQL是一个开放源代码的数据库，它适合于开放源代码的项目和小型组织。为了配置JBoss和MySQL数据库需要进行下面一些修改。 <br><br>　<strong>　配置JBoss类路径</strong> <br><br>　　为了使用JBoss 4.0和MySQL，我们首先要把驱动程序类.jar文件（mysql-connector-java-3.0.9-stable-bin.jar）复制到＜JBoss＞/server/default/lib目录中。其中的＜JBoss＞是JBoss应用程序服务器安装的目录。lib目录的.jar和.zip文件都包含在JBoss服务器的Classpath（类路径）中。 <br><br>　　<strong>配置MySQL数据源 <br></strong><br>　　为了使用MySQL数据源，需要把＜JBoss＞/docs/examples/jca/mysql-ds.xml复制到＜JBoss＞/server/default/deploy目录中。当JBoss服务器启动的时候，deploy目录中的数据源配置文件就被部署好了。依照下面的步骤修改mysql-ds.xml配置文件： <br><br>　　&#183; 把＜driver-class/＞设置为com.mysql.jdbc.Driver，＜connection-url/＞设置为jdbc:mysql://localhost/＜database＞，其中＜database＞是MySQL数据库。＜database＞的值可以设置为test，它是MySQL中的示例数据库。 <br><br>　　&#183; 在jndi-name元素中指定数据源的JNDI名称。 <br><br>　　&#183; 指定连接MySQL数据库的用户名和密码。在默认情况下，root用户名不需要密码。 <br><br>　　&#183; 把type-mapping元素指定为mySQL。type-mapping元素指定了standardjbosscmp-jdbc.xml部署文件中预定义的数据库类型映射关系。对于MySQL数据库来说，类型映射是mySQL。 <br><br>　　修改过的mysql-ds.xml如下所示： <br><br>　　＜?xml version="1.0" encoding="UTF-8"?＞ <br>　　＜datasources＞ <br>　　＜local-tx-datasource＞ <br>　　＜jndi-name＞MySqlDS＜/jndi-name＞ <br>　　＜connection-url＞jdbc:mysql://localhost/test＜/connection-url＞ <br>　　＜driver-class＞com.mysql.jdbc.Driver＜/driver-class＞ <br>　　＜user-name＞root＜/user-name＞ <br>　　＜password＞＜/password＞ <br>　　＜metadata＞ <br>　　＜type-mapping＞mySQL＜/type-mapping＞ <br>　　＜/metadata＞ <br>　　＜/local-tx-datasource＞ <br>　　＜/datasources＞ <br><br>　　我们可以通过提供数据源JNDI名称从数据源获取一个JDBC连接： <br><br>　　InitialContext initialContext = new InitialContext(); <br>　　javax.sql.DataSource ds = (javax.sql.DataSource) <br>　　initialContext.lookup("java:/MySqlDS"); <br>　　java.sql.Connection conn = ds.getConnection(); <br><br>　　<strong>配置登录信息 <br></strong><br>　　现在我们根据MySQL数据库设置来修改login-config.xml配置文件。为了登录到MySQL数据库，应用程序策略MySqlDbRealm是必要的。给login-config.xml添加下面的＜application-policy/＞元素： <br><br>　　＜application-policy name = "MySqlDbRealm"＞ <br>　　＜authentication＞ <br>　　＜login-module code = <br>　　"org.jboss.resource.security.ConfiguredIdentityLoginModule" <br>　　flag = "required"＞ <br>　　＜module-option name ="principal"＞＜/module-option＞ <br>　　＜module-option name ="userName"＞root＜/module-option＞ <br>　　＜module-option name ="password"＞＜/module-option＞ <br>　　＜module-option name ="managedConnectionFactoryName"＞ <br>　　jboss.jca:service=LocalTxCM,name=MySqlDS <br>　　＜/module-option＞ <br>　　＜/login-module＞ <br>　　＜/authentication＞ <br>　　＜/application-policy＞ <br><br><br>　　通过修改mysql-ds.xml和login-config.xml文件，JBoss 4.0服务器已经被配置好了，可以使用MySQL数据库了。除了前面的一些特定的设置之外，可能还需要对JBoss部署文件和JBoss JDBC配置文件作一些修改。 <br><br>　　如果"建立表"选项被选中（通过把jbosscmp-jdbc.xml中的create-table元素设置为true）用于部署CMP实体EJB，并且MySQL表的主键（或唯一键）的长度超过了500字节，应用程序的部署过程会在MySQL数据库中生成一个SQL语法错误。对于java.lang.String类型的CMP字段，我们可以通过在standardjbosscmp-jdbc.xml部署文件的mySQL类型映射中把用于Java类型java.lang.String的SQL类型设置为较低的VARCHAR值来减小主键（或唯一键）的长度。另一个可能出现的问题是jbosscmp-jdbc.xml部署文件中的column-name元素。如果某个MySQL表的列名与MySQL保留字相同，在JBoss中部署J2EE应用程序的时候会产生一个错误。解决这个问题的方法是使列名与MySQL保留字不同。
<p>　　 <strong>转换WebLogic EJB应用程序 <br></strong><br>　　在建立起使用MySQL的JBoss服务器之后，你现在必须把该WebLogic EJB应用程序转换为JBoss EJB应用程序，这就涉及到部署文件的修改。WebLogic实体EJB应用程序由EJB部署文件（ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml），bean类（CatalogBean.java）、远程接口（Catalog.java）和home接口（CatalogHome.java）组成。为了在WebLogic服务器上部署实体EJB，需要建立一个EJB .jar文件，这个EJB .jar文件的结构如下： <br><br>　　META-INF/ <br>　　ejb-jar.xml <br>　　weblogic-ejb-jar.xml <br>　　weblogic-cmp-rdbms-jar.xml <br>　　CatalogBean.class <br>　　Catalog.class <br>　　CatalogHome.class <br><br>　　EJB的结构信息和应用程序汇编信息都在部署文件中指定。结构信息包括说明EJB是对话EJB还是实体EJB。ejb-jar.xml部署文件中的应用程序汇编信息在assembly-descriptor元素中指定。WebLogic中该实体EJB部署文件包括ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml。相应的JBoss部署文件是ejb-jar.xml、jboss.xml和jbosscmp-jdbc.xml。这些文件之间的转换如下所示。 <br><br>　　ejb-jar.xml部署文件对于WebLogic和JBoss来说都是一样的，除了multiplicity元素之外。JBoss服务器的ejb-jar.xml中的multiplicity元素需要大写，例如One或Many，而不是one或many。 <br><br>　　示例实体EJB的ejb-jar.xml部署文件包含在示例代码中。示例ejb-jar.xml定义了一个叫做"Catalog"的实体EJB。这个示例EJB拥有CMP字段catalogId、journal和publisher。其主键字段是catalogId。 <br><br>　　把weblogic-ejb-jar.xml转换为jboss.xml <br><br>　　weblogic-ejb-jar.xml和jboss.xml部署文件都是EJB厂商的特定部署文件。为了把WebLogic EJB应用程序部署到JBoss应用程序服务器上，必须把weblogic-ejb-jar.xml部署文件转换为jboss.xml。 <br><br>　　weblogic-ejb-jar.xml中的根元素是weblogic-ejb-jar。jboss.xml中的根元素是jboss。在jboss.xml和weblogic-ejb-jar.xml部署文件中指定某个EJB的JNDI名称的元素是jndi-name或local-jndi-name。本文中的示例实体EJB的weblogic-ejb-jar.xml部署文件也包含在示例代码中。weblogic-ejb-jar.xml部署文件的DOCTYPE元素是： <br><br>　　＜!DOCTYPE weblogic-ejb-jar PUBLIC <br>　　"-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" <br>　　"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" ＞ <br>　　jboss.xml部署文件的DOCTYPE是： <br>　　＜!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" <br>　　"http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd"＞ <br><br>　　我们通过一个自定义的XSLT样式表jboss.xslt（包含在示例代码中）把部署文件weblogic-ejb-jar.xml转换为jboss.xml。该样式表建立jboss.xml，它是与WebLogic的weblogic-ejb-jar.xml部署文件相当的JBoss文件。使用jboss.xslt样式表所生成的jboss.xml文件也包含在示例代码中。 <br><br>　　把weblogic-cmp-rdbms-jar.xml转换为jbosscmp-jdbc.xml <br><br>　　weblogic-cmp-rdbms-jar.xml部署文件指定了CMP实体EJB的数据库持续信息。weblogic-cmp-rdbms-jar.xml文件包含实体EJB的表名称、连接到数据库的数据源和与该实体EJB CMP字段对应的列。示例实体EJB的weblogic-cmp-rdbms-jar.xml部署文件包含在可以下载的.zip文件中。指定CMP视图EJB持续信息的JBoss部署文件是jbosscmp-jdbc.xml。 <br><br>　　weblogic-cmp-rdbms-jar.xml的根元素是weblogic-rdbms-jar；jbosscmp-jdbc.xml的根元素是jbosscmp-jdbc。weblogic-cmp-rdbms-jar.xml文件中指定连接到数据库的数据源的data-source-name元素与jbosscmp-jdbc.xml部署文件中的datasource元素功能相当。weblogic-cmp-rdbms-jar.xml指定实体EJB CMP字段与数据库表的列之间映射关系的field-map元素与jbosscmp-jdbc.xml中的cmp-field元素功能相当。weblogic-cmp-rdbms-jar.xml中指定列名的dbms-column元素与jbosscmp-jdbc.xml中的column-name元素功能相当。weblogic-cmp-rdbms-jar.xml部署文件的DOCTYPE是： <br><br>　　＜!DOCTYPE weblogic-rdbms-jar PUBLIC <br>　　'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB RDBMS Persistence//EN' <br>　　'http://www.bea.com/servers/wls810/dtd/weblogic-rdbms20-persistence-810.dtd'＞ <br>　　jbosscmp-jdbc.xml的DOCTYPE是： <br>　　＜!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN" <br>　　"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd"＞ <br><br><br>　　我们使用自定义的XSLT样式表jbosscmp-jdbc.xslt（包含在示例代码中）把部署文件weblogic-cmp-rdbms-jar.xml转换为jbosscmp-jdbc.xml。该样式表建立jbosscmp-jdbc.xml，它是与WebLogic的weblogic-cmp-rdbms-jar.xml部署文件功能相当的JBoss文件。jbosscmp-jdbc.xml也包含下载在.zip文件中。 <br><br>　　WebLogic部署文件的DTD与JBoss部署文件的不同。使用自定义的XSLT的时候，如果部署文件中还出现了一些额外的元素，可能还需要做进一步的修改，可以把WebLogic部署文件转换为JBoss部署文件。在下面的部分中，我们将在JBoss服务器上部署这个EJB应用程序。 <br><br>　<strong>　在JBoss中部署该EJB应用程序</strong> <br><br>　　把WebLogic EJB部署文件转换为JBoss部署文件之后，你必须建立一个心的EJB .jar文件以部署到JBoss服务器上。该JBoss .jar文件的结构如下： <br><br>　　META-INF/ <br>　　ejb-jar.xml <br>　　jboss.xml <br>　　jbosscmp-jdbc.xml <br>　　CatalogBean.class <br>　　Catalog.class <br>　　CatalogHome.class <br><br>　　编译示例EJB类和接口： <br><br>　　java Catalog.java CatalogBean.java CatalogHome.java <br><br>　　把JBoss部署文件ejb-jar.xml、jboss.xml和jbosscmp-jdbc.xml复制到META-INF目录中。使用jar工具从JBoss部署文件、类和接口中建立一个.jar文件。 <br><br>　　jar cf CatalogEJB.jar CatalogBean.class <br>　　Catalog.class CatalogHome.class META-INF/*.xml <br><br>　　部署该JBoss实体EJB应用程序的过程是，把该.jar文件（EntityEJB.jar）复制到＜JBoss＞\server\default\deploy目录（其中＜JBoss＞是JBoss安装的目录）中。当服务器启动的时候，该EJB应用程序就在JBoss服务器上面部署好了。JBoss应用程序服务器中的部署（deploy）目录与WebLogic应用程序服务器中的应用程序（applications）目录对应。 <br><br>　　<strong>结论 <br></strong><br>　　通过转换部署文件可以把WebLogic中部署的实体EJB应用程序迁移到JBoss应用程序服务器上。使用相似的步骤，通过把weblogic.xml 部署文件转换为jboss-web.xml ，也可以把WebLogic J2EE Web应用程序迁移到JBoss上。</p>
<img src ="http://www.blogjava.net/youngturk/aggbug/135293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-08-08 17:05 <a href="http://www.blogjava.net/youngturk/archive/2007/08/08/135293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的EJB开发实例，JBOSS4.0+ECLIPSE3.1</title><link>http://www.blogjava.net/youngturk/archive/2007/08/08/135290.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Wed, 08 Aug 2007 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/08/08/135290.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/135290.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/08/08/135290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/135290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/135290.html</trackback:ping><description><![CDATA[<span class=content>相信很多刚学做J2EE开发的人都会觉得入手很麻烦，特献上前不久整理给一学弟看的一个EJB应用示例，开发环境是JBOSS4.0.2+ECLIPSE3.1。<br>软件下载配置安装我就不多说了，相信大家都会很轻易搞定。<br><br>开发流程，写一个简单的stateful session bean，进行远程调用,计算出某一特定正整数的Fibonacci值。<br><br>所创建的project下引入jbossall-client.jar，在JBOSS_HOME/client目录下<br>分别用eclipse写出EJB远程调用的home接口，remote接口和相对应的Bean<br>———1. home接口———<br>package com.terry.ejbsample;<br><br>import java.rmi.RemoteException;<br>import javax.ejb.CreateException;<br>import javax.ejb.EJBHome;<br><br>/**<br>* @author terry<br>*<br>*/<br>public interface FibonacciHome extends EJBHome<br>{<br>&nbsp; Fibonacci create() throws RemoteException, CreateException;<br><br>}<br>———2. remote 接口———<br>package com.terry.ejbsample;<br><br>import java.rmi.RemoteException;<br>import javax.ejb.EJBObject;<br>/**<br>* @author terry<br>*<br>*/<br>public interface Fibonacci extends EJBObject<br>{<br>&nbsp; public long getFibonacci(int n) throws RemoteException;<br>}<br>———3. FibonacciBean———<br>package com.terry.ejbsample;<br><br>import javax.ejb.CreateException;<br>import javax.ejb.SessionBean;<br>import javax.ejb.SessionContext;<br>/**<br>* @author terry<br>*<br>*/<br>public class FibonacciBean implements SessionBean<br>{<br>&nbsp; public long getFibonacci(int n)<br>&nbsp; {<br>&nbsp; &nbsp; if (n==0) return 1;<br>&nbsp; &nbsp; else if (n==1) return 1;<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; &nbsp; return getFibonacci(n - 1) + getFibonacci(n - 2);<br>&nbsp; }<br>&nbsp; public void ejbCreate() throws CreateException<br>{<br>System.out.println(&#8220;Bean created&#8221;);<br>}<br>&nbsp; public void ejbRemove(){} &nbsp; <br>&nbsp; public void ejbActivate(){} &nbsp; <br>&nbsp; public void ejbPassivate(){}<br>&nbsp; public void setSessionContext(SessionContext ctx){}<br>}<br><br>配置相对应的ejb-jar.xml和jboss.xml文件<br>———1. ejb-jar.xml———<br>&lt;?xml version="1.0"?&gt;<br><br>&lt;ejb-jar xmlns="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><font color=#000000><u>http://java.sun.com/xml/ns/j2ee</u></font></a>"<br>&nbsp; xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" target=_blank><font color=#000000><u>http://www.w3.org/2001/XMLSchema-instance</u></font></a>"<br>&nbsp; xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><font color=#000000><u>http://java.sun.com/xml/ns/j2ee</u></font></a><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" target=_blank><font color=#000000><u>http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd</u></font></a>"<br>&nbsp; version="2.1"&gt;<br>&nbsp; &lt;enterprise-beans&gt;<br>&nbsp; &nbsp; &lt;session&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;ejb-name&gt;Fibonacci&lt;/ejb-name&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;home&gt;com.terry.ejbsample.FibonacciHome&lt;/home&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;remote&gt;com.terry.ejbsample.Fibonacci&lt;/remote&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;ejb-class&gt;com.terry.ejbsample.FibonacciBean&lt;/ejb-class&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;session-type&gt;Stateful&lt;/session-type&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;transaction-type&gt;Container&lt;/transaction-type&gt;<br>&nbsp; &nbsp; &lt;/session&gt;<br>&nbsp; &lt;/enterprise-beans&gt;<br>&lt;/ejb-jar&gt;<br>———2. jboss.xml———<br>&lt;?xml version="1.0"?&gt;<br><br>&lt;jboss&gt;<br>&nbsp; &lt;enterprise-beans&gt;<br>&nbsp; &nbsp; &lt;session&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;ejb-name&gt;Fibonacci&lt;/ejb-name&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;jndi-name&gt;FibonacciHome&lt;/jndi-name&gt;<br>&nbsp; &nbsp; &lt;/session&gt;<br>&nbsp; &lt;/enterprise-beans&gt;<br>&lt;/jboss&gt;<br>在Eclipse中配置所需package的jar包，将class文件以及xml描述文件分别添加进去，注意正确的前缀，xml文件必须在根目录下的META-INF文件夹中。或者你可以在console窗口使用jar命令进行打包（如 jar cf ff.jar *）<br><br>将刚刚打包的ff.jar放入JBOSS_HOME/server/default/deploy，启动jboss的默认服务器，如果一切顺利的话，你会在console窗口中看到你刚刚所写的FibonacciBean已经被成功部署到jboss中了。<br><br>写一个简单的测试程序<br>———FibonacciClient.java———<br>package com.terry.ejbsample;<br>import javax.naming.Context;<br>import javax.naming.InitialContext;<br>import javax.rmi.PortableRemoteObject;<br>/**<br>* @author terry<br>* <br>*/<br>public class FibonacciClient<br>{<br>&nbsp; public static void main(String[] args)<br>&nbsp; {<br>&nbsp; &nbsp; try<br>&nbsp; &nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; java.util.Properties p = new java.util.Properties();<br>&nbsp; &nbsp; &nbsp; &nbsp; p.put(Context.INITIAL_CONTEXT_FACTORY,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "org.jnp.interfaces.NamingContextFactory");<br>&nbsp; &nbsp; &nbsp; &nbsp; p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");<br>&nbsp; &nbsp; &nbsp; &nbsp; p.put(Context.PROVIDER_URL, "localhost:1099");<br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; Context jndiContext = new InitialContext(p);<br>&nbsp; &nbsp; &nbsp; &nbsp; Object ref = jndiContext.lookup("FibonacciHome");<br>&nbsp; &nbsp; &nbsp; &nbsp; FibonacciHome home = (FibonacciHome) PortableRemoteObject.narrow(<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ref, FibonacciHome.class);<br>&nbsp; &nbsp; &nbsp; &nbsp; Fibonacci ff = home.create();<br>&nbsp; &nbsp; &nbsp; &nbsp; long result;<br>&nbsp; &nbsp; &nbsp; &nbsp; for (int i = 40; i &gt;= 0; i--)<br>&nbsp; &nbsp; &nbsp; &nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = ff.getFibonacci(i);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Fibonacci of" + i + " is " + result);<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; } catch (java.rmi.RemoteException re)<br>&nbsp; &nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; re.printStackTrace();<br>&nbsp; &nbsp; } catch (Throwable t)<br>&nbsp; &nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; t.printStackTrace();<br>&nbsp; &nbsp; }<br>&nbsp; }<br>}<br><br>解析此例<br>J2EE应用说白了其实原理也很简单，J2EE是分布式系统，意味着server与client是通过RMI-IIOP和JNDI进行交互的。简单来说就是提供给client一种可以远程调用server端程序的方法，当然其中的细节会比较复杂，不过这些都是你深入之后才会接触到的东西。 <br>本文示例，客户端通过JNDI利用Home接口创建出一个Remote object，再通过调用Remote object 中的方法与FibonacciBean进行交互，处理逻辑。客户端并不是直接与Bean进行交互。<br>程序中的ejb-jar.xml是用来描述EJB属性的，jboss.xml是用来定义ejb-jar.xml中Bean所对应的JNDI信息。<!-- google_ad_section_end --></span>
<img src ="http://www.blogjava.net/youngturk/aggbug/135290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-08-08 17:02 <a href="http://www.blogjava.net/youngturk/archive/2007/08/08/135290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>直接配置MyEclipse的WebLogic服务器 </title><link>http://www.blogjava.net/youngturk/archive/2007/07/26/132650.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 26 Jul 2007 15:14:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/07/26/132650.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/132650.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/07/26/132650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/132650.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/132650.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_231355 onclick="this.style.display='none'; Code_Closed_Text_231355.style.display='none'; Code_Open_Image_231355.style.display='inline'; Code_Open_Text_231355.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_231355 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_231355.style.display='none'; Code_Closed_Image_231355.style.display='inline'; Code_Closed_Text_231355.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_231355 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Code_Open_Text_231355 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">MyEclipse默认的应用服务器为JBoss3，这里我们使用WebLogic8.</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">。启动Eclipse，选择&#8220;窗口\首选项&#8221;菜单，打开首选项对话框。展开MyEclipse下的Application&nbsp;Servers结点，点击JBoss&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">，选中右面的Disable单选按钮，停用JBoss&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">。然后点击WebLogic&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">，选中右边的Enable单选按钮，启用WebLogic服务器。同时下面的配置如下：&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)BEA&nbsp;home&nbsp;directory：E:\BEA<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)WebLogic&nbsp;installation&nbsp;directory：E:\BEA\weblogic81&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)Admin&nbsp;username：admin&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)Admin&nbsp;password：</span><span style="COLOR: #000000">12345678</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">)Execution&nbsp;domain&nbsp;root：E:\bea\user_projects\domains\mydomain&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">)Execution&nbsp;domain&nbsp;name：mydomain&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">)Execution&nbsp;server&nbsp;name：myserver&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">)Hostname:PortNumber：localhost:</span><span style="COLOR: #000000">7001</span><span style="COLOR: #000000">。&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">)Security&nbsp;policy&nbsp;file：E:\bea\weblogic81\server\lib\weblogic.policy&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">)JAAS&nbsp;login&nbsp;configuration&nbsp;file：省略。&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>接着展开WebLogic&nbsp;8结点，点击JDK，在右边的WLS&nbsp;JDK&nbsp;name处选择WebLogic&nbsp;8的默认JDK。这里组合框中缺省为j2re1.</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.2_03，即之前单独安装的jre。单击Add按钮，弹出WebLogic&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;Add&nbsp;JVM对话框，在JRE名称处随便输入一个名字，如jre1.</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.1_02。然后在JRE主目录处选择WebLogic安装文件夹中的JDK文件夹，如E:\BEA\jdk141_02，程序会自动填充Javadoc&nbsp;URL文本框和JRE系统库列表框。单击确定按钮关闭对话框。这时候就可以在WLS&nbsp;JDK&nbsp;name组合框中选择jre1.</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.1_02了。之后还要在下面的Optional&nbsp;Java&nbsp;VM&nbsp;arguments，如</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ms64m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mx64m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Djava.library.path</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">E:/BEA/weblogic81/server/bin</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Dweblogic.management.discover</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Dweblogic.ProductionModeEnabled</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>最后点击Paths，在右边的Prepend&nbsp;to&nbsp;classpath列表框中，通过Add&nbsp;JAR</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">ZIP按钮，加入D:\BEA\weblogic81\server\lib\weblogic.jar、D:\BEA\weblogic81\server\lib\webservices.jar。&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>如果用到数据库，还需把数据库的驱动类库加进来，这里我们用WebLogic自带的SQL&nbsp;Server数据库驱动库D:\BEA\weblogic81\server\lib\mssqlserver4v65.jar。&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>(注意:是否所有服务器如tomcat,weblogic,在编译jsp程序时候,若涉及到数据库编程,都需要在配置eclipse中的服务器时候加入到类路径中去</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">)&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>至此，MyEclipse中WebLogic8的配置工作就算完成了。下面可以看看在Eclipse中能否启动WebLogic了？自从安装了MyEclipse之后，Eclipse工具栏中就会有一个Run</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Stop&nbsp;Servers下拉按钮。点击该按钮的下拉部分，选择&#8220;WebLogic&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\Start&#8221;菜单，即开始启动WebLogic了。通过查看下面的控制台消息，就可以知道启动是否成功，或有什么异常发生。停止WebLogic可选择&#8220;WebLogic\Stop&#8221;菜单。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></span></div>
<img src ="http://www.blogjava.net/youngturk/aggbug/132650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-07-26 23:14 <a href="http://www.blogjava.net/youngturk/archive/2007/07/26/132650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>主题:   MyEclipse + WebLogic 开发 EJB 需注意 </title><link>http://www.blogjava.net/youngturk/archive/2007/07/26/132649.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 26 Jul 2007 15:10:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/07/26/132649.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/132649.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/07/26/132649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/132649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/132649.html</trackback:ping><description><![CDATA[<span>一般在使用 EJB 时都是从创立 J2EE 项目的 Application 项中依次创建 Application、EJB、Web 三项，其中：</span><br>Appliction<span> 是用来作为 J2EE 部署时使用的。</span><br><span>EJB 就是创建 EJB 组件。</span><br><span>Web 就是一个 Web 服务的容器，包括 HTML、JSP、Servlet、Struts 等。</span><br><br><span>在 MyEclipse 中使用 EJB 的两种方法：</span><br><span 102, 255);?>①选择 J2EE 1.3 则可以通过 xDoclet 来根据 App_Bean 来生成 App、Home、Session、Apputil 等。</span><br><span><span style="COLOR: rgb(51,102,255)">②选择 J2EE 1.4 的话就需要自己写 App、Home、Session 等程序代码。</span>对于整个程序以后的运行过程都是以 JNDI 为主线的展开，要<span 0, 0);?>注意</span>：</span><br><span>A.一般要以 Home 中的 JNDI-Name 为标准，具体在使用 xDoclet 的 J2EE 1.3 时参看相关的帮助。</span><br><span>B.配置主要在 weblogic-ejb-jar.xml 和 ejb-jar.xml 的 JNDI 的设置（这一般是针对于在同一服务器内部的 JNDI 的调用，而对于其他外部情况，需要设置 Ervirament 权限等问题后才能进行 Lookup）。</span><br><span><br>由于在服务器等各方面的原因，在部署之前要<span 0, 0);?>注意</span>几个配置文件的正确的位置：</span><br><span>A.weblogic-ejb-jar.xml 和 ejb-jar.xml 要在 XXXEJB/src/meta-inf 下，可以通过在不同的目录下导入。</span><br><span>B.web.xml 和 weblogic.xml 要在 XXXWeb/webRoot/web-inf 下，可以 weblogic.xml 直接用别的程序的，web.xml 需要自己根据需要来配置。<br><br>最后在部署之前，要对整个 Application Server 的三项进行项目清理，然后部署到服务器上。</span><br>
<img src ="http://www.blogjava.net/youngturk/aggbug/132649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-07-26 23:10 <a href="http://www.blogjava.net/youngturk/archive/2007/07/26/132649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse+Weblogic开发EJB</title><link>http://www.blogjava.net/youngturk/archive/2007/07/19/131229.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 19 Jul 2007 02:59:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/07/19/131229.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/131229.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/07/19/131229.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/131229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/131229.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_105757 onclick="this.style.display='none'; Code_Closed_Text_105757.style.display='none'; Code_Open_Image_105757.style.display='inline'; Code_Open_Text_105757.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_105757 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_105757.style.display='none'; Code_Closed_Image_105757.style.display='inline'; Code_Closed_Text_105757.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_105757 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">MyEclipse+Weblogic开发EJB</span><span id=Code_Open_Text_105757 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">MyEclipse</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Weblogic开发EJB<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>编写人：邬文俊<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>编写时间：</span><span style="COLOR: #000000">2005</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>联系邮件:wenjunwu430@gmail.com<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>前言<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>学习ejb也有段日子了，一直没有找到好的资料指导如何在myeclipse下面开发ejb，令我十分苦恼。经过查阅资料和阅读myeclipse自带帮助，总结出该文档，希望该文档能够让大家迅速上手使用MyEclipse开发EJB组件,做为我们组的培训资料。如果中间有不足或错误请补充纠正，谢谢。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装myeclipse,weblogic<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载安装eclipse&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.0版本，具体版本根据所下载的myeclipse版本要求（见www.myeclipsesite.com）<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载myeclipse3.8安装文件，运行安装，需要设置eclipse的安装目录。或者下载解压包，将文件夹解压到eclipse安装文件夹plugins目录，安装方法同普通插件安装相同。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装Weblogic&nbsp;</span><span style="COLOR: #000000">8.1</span><span style="COLOR: #000000">.运行安装程序即可。具体配置本文不再描述，认为读者已经配置好weblogic的domain。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置weblogic<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>配置服务器以后可以通过myeclipse启动停止weblogic。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>注：以下资料转自http:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">dev2dev.bea.com.cn/bbs,作者:newwei</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择菜单Window</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Preferences</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">MyEclipse</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Application&nbsp;Servers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Weblogic&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">，配置项目如下：<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEA&nbsp;home&nbsp;directory:&nbsp;选择Bea的安装目录<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Weblogic&nbsp;installation&nbsp;directory:现在BEA下面的weblogic81目录<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Admin&nbsp;username:输入上面在配置过程中设的用户名<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Admin&nbsp;password:输入刚才设的密码<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Execution&nbsp;domain&nbsp;root:选择BEA下user_projects\domains目录下上面第一步创建的目录<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Execution&nbsp;domain&nbsp;name:输入上面那个目录的名称<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Execution&nbsp;server&nbsp;name:输入上一步的那个Congfiguration&nbsp;Name<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hostname:PortNumber:输入IP地址和监听的端口<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Security&nbsp;policy&nbsp;file:输入BEA安装目录下的\weblogic81\server\lib\weblogic.policy<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在Weblogic&nbsp;8下面配置JDK，在WLS&nbsp;JDK&nbsp;name那里选择新建，弹出的对话框中选择BEA下面的JDK安装路径，输入一个名字确定就可以；在Optional&nbsp;Java&nbsp;VM&nbsp;arguments对话框里面输入</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ms64m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mx64m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Djava.library.path</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:/BEA/weblogic81/server/bin</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Dweblogic.management.discover</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Dweblogic.ProductionModeEnabled</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在Weblogic&nbsp;8下面配置Paths，加入BEA安装路径下</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">weblogic81</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">server</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">lib中的webservices.jar和weblogic.jar两个包。如果需要其他的包，也在这里加入。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建第一个EJB工程<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;New&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;Project.<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择J2EE目录下&nbsp;EJB&nbsp;Projec<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择&nbsp;Next&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">.<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>输入工程名称，这里是firsejb&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>如果要使用XDoclet工具，选择J2EE&nbsp;</span><span style="COLOR: #000000">1.3</span><span style="COLOR: #000000">。（建议使用，XDoclet是自动生成代码和部署描述文件的工具）<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>选择Finish，目录结构入图。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建第一个stateless&nbsp;sessionbean<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主界面选择菜单File&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;New&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;Other，打开新建向导。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;展开J2EE&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;EJB&nbsp;文件夹，选择Session&nbsp;EJB。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择Next</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">，界面如下。这里要注意，package建议用.ejb后缀，因为XDoclet工具默认ejb&nbsp;bean所在的文件夹以.ejb后缀，接口文件的文件夹以.interface为后缀，为了避免设置上的麻烦，建议按默认情况取名。当然你也可以通过设置XDoclet属性改变，详情请查看帮助文档。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择Finish<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用XDoclet自动生成接口文件、部署描述文件<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>XDoclet可以加速EJB的开发，自动完成一些文件生成工作，这方面和JBuilder是类似的。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>我们需要XDoclet生成的文件如下：<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>接口文件：远程接口、本地接口、Home接口、本地Home接口（文件作用参考《精通EJB》）<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>部署文件：ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml（标准ejb部署描述文件）、weblogic</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml文件(weblogic部署ejb描述文件，不同服务器该文件不同，要特别注意，该文件是必需的，通常由工具自动生成)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5.1</span><span style="COLOR: #000000">.&nbsp;&nbsp;为工程配置XDoclet<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开工程的properties窗口。选择菜单Properties&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;MyEclipse</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">XDoclet。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add&nbsp;Standard<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择Standard&nbsp;EJB。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;去掉没有用的标签，保留需要的如下图（见myeclipse帮助myeclipse&nbsp;application&nbsp;developer&nbsp;guide</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">ejb&nbsp;development</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">figure&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">）。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在build选项卡中选择&nbsp;Use&nbsp;dynamic&nbsp;build&nbsp;specification<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>以上配置就可以生成一个标准stateless&nbsp;bean的所有接口和配置文件，但是要部署该bean，还缺一个服务器部署描述文件weblogic</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5.2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;为服务器配置XDoclet<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>该配置是为了自动生成weblogic</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml文件。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>右击ejbdoclet&nbsp;选择&nbsp;Add&nbsp;。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>我这里用的是weblogic8.</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">，所以选择weblogic。设置属性destDir&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;src</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">META</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">INF。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5.3</span><span style="COLOR: #000000">.&nbsp;&nbsp;运行XDoclet生成文件<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>在工程上右键MyEclipse</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Run&nbsp;XDoclet<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>生成前后工程目录应该类似为：<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Jboss.xml应该为weblogic</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>查看weblogic</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ejb</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">jar.xml文件，可以知道Home接口的JNDI名称。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5.4</span><span style="COLOR: #000000">.&nbsp;&nbsp;部署EJB<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyEclipse&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">Add&nbsp;and&nbsp;Remove&nbsp;Project&nbsp;Deployments<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;点击add，添加部署服务器weblogic。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></span></div>
<img src ="http://www.blogjava.net/youngturk/aggbug/131229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-07-19 10:59 <a href="http://www.blogjava.net/youngturk/archive/2007/07/19/131229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>构建bean要做的5件事</title><link>http://www.blogjava.net/youngturk/archive/2007/02/24/100467.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Sat, 24 Feb 2007 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/02/24/100467.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/100467.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/02/24/100467.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/100467.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/100467.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Code_Closed_Image_133234" onclick="this.style.display='none'; Code_Closed_Text_133234.style.display='none'; Code_Open_Image_133234.style.display='inline'; Code_Open_Text_133234.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
				<img id="Code_Open_Image_133234" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_133234.style.display='none'; Code_Closed_Image_133234.style.display='inline'; Code_Closed_Text_133234.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
				<span id="Code_Closed_Text_133234" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">如下</span>
				<span id="Code_Open_Text_133234" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">.bean类<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
						<span style="COLOR: #000000">2</span>
						<span style="COLOR: #000000">.接口<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
						<span style="COLOR: #000000">3</span>
						<span style="COLOR: #000000">.XML部署描述文件<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
						<span style="COLOR: #000000">4</span>
						<span style="COLOR: #000000">.ejb</span>
						<span style="COLOR: #000000">-</span>
						<span style="COLOR: #000000">jar<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
						<span style="COLOR: #000000">5</span>
						<span style="COLOR: #000000">.部署</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/youngturk/aggbug/100467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-02-24 13:33 <a href="http://www.blogjava.net/youngturk/archive/2007/02/24/100467.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB远程接口</title><link>http://www.blogjava.net/youngturk/archive/2007/01/24/95783.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Wed, 24 Jan 2007 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/01/24/95783.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/95783.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/01/24/95783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/95783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/95783.html</trackback:ping><description><![CDATA[
		<p> </p>CabinRemotere""o
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Code_Closed_Image_174001" onclick="this.style.display='none'; Code_Closed_Text_174001.style.display='none'; Code_Open_Image_174001.style.display='inline'; Code_Open_Text_174001.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /><img id="Code_Open_Image_174001" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_174001.style.display='none'; Code_Closed_Image_174001.style.display='inline'; Code_Closed_Text_174001.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><span id="Code_Closed_Text_174001" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">小析远程接口</span><span id="Code_Open_Text_174001" style="DISPLAY: none"><br /><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.rmi.PortableRemoteObject;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><img src="http://www.blogjava.net/images/dot.gif" />..<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />javax.naming.Context jndiContext;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" />.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object ref </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> jndiContext.lookup()</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为了将Context.lookup()方法的返回参数窄化为适合的类型，必须显式的请求一个实现了所需接口的远程引用</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">CabinHomeRemote home </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (CabinHomeRemote)PortableRemoteObject.narrow(ref,CabinHomeRemote.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">narrow()方法有两个参数，即需要窄化的远程引用以及要窄化为何种类型</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">，对于从一个远程home接口查找方法返回Collection或Enumeration,由此得到一个远程EJB对象引用时：<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />ShipHomeRemote shipHome </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <img src="http://www.blogjava.net/images/dot.gif" />..</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">得到游船home</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">Enumeration </span><span style="COLOR: #0000ff">enum</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> shipHome.findByCapacity(</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_505_508_Open_Image" onclick="this.style.display='none'; Codehighlighter1_505_508_Open_Text.style.display='none'; Codehighlighter1_505_508_Closed_Image.style.display='inline'; Codehighlighter1_505_508_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_505_508_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_505_508_Closed_Text.style.display='none'; Codehighlighter1_505_508_Open_Image.style.display='inline'; Codehighlighter1_505_508_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">enum</span><span style="COLOR: #000000">.hasMoreElements())</span><span id="Codehighlighter1_505_508_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_505_508_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />         Object ref = enum.nextElement();<br />             ShipRemote ship = (ShipRemote)<br />               PortableRemoteObject.narrow(ref,ShipRemote.class);//返回一个实现了指定Remote接口的存根<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}<br />3,当使用javax.ejb.Handle.getEJBObject()方法得到一个远程EJB对象引用时：<br />   Handle handle = .....//得到Handle<br />   Object ref = handle.getEJBObject();<br />   CabinRemote cabin = (CabinRemote);<br />   PortableRemoteObject.narrow(ref,CabinRemote.class);<br />4,当使用javax.ejb.HomeHandle.getEJBHome()方法得到一个远程EJBhome引用时：<br />   homeHandle home = ........//得到home Handle<br />   EJBHome ref = homeHandle.getEJBHome();<br />   CabinHomeRemoteObject.narrow(ref,CabinHomeRemote.class);<br />5，当使用javax.ejb.EJBMetadata.getEJBHome()方法得到一个远程EJB home引用时：<br />   EJBMetaData metaDta = homeHandle.getEJBMetaData();<br />   EJBHome ref = homeHandle.getEJBHome();<br />   CabinHomeRemoteObject.narrow(ref,CabinHomeRemote.class);<br />6,当由人和业务方法返回一个宽（即较一般）的远程EJB对象类型时；以下是一个假象例子：<br />   //officer扩展了Crewman<br />   ShipHomeRemote shipHome <span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <img src="http://www.blogjava.net/images/dot.gif" />//得到ship远程引用</span>    <br />   CrewmanRemote crew = ship.getrCrewman("Buns","john","lst liutenant");<br />    OfficerRemote burns = (officerRemote)<br />   PortableRemoteObject.narrow(ref,CabinRemote.class);<br />//当方法签名中制定了远程类型时，则不需要PortableRemoteObject.narrow();方法。<br /></span></span></span></div><img src ="http://www.blogjava.net/youngturk/aggbug/95783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-01-24 17:59 <a href="http://www.blogjava.net/youngturk/archive/2007/01/24/95783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于实体 Bean</title><link>http://www.blogjava.net/youngturk/archive/2007/01/18/94715.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 18 Jan 2007 09:51:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/01/18/94715.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/94715.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/01/18/94715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/94715.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/94715.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实体 Bean																						Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->																										实体 Bean 特征实体 Bean 在许多方面不同于会话 Bean。实...&nbsp;&nbsp;<a href='http://www.blogjava.net/youngturk/archive/2007/01/18/94715.html'>阅读全文</a><img src ="http://www.blogjava.net/youngturk/aggbug/94715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-01-18 17:51 <a href="http://www.blogjava.net/youngturk/archive/2007/01/18/94715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于会话 Bean</title><link>http://www.blogjava.net/youngturk/archive/2007/01/18/94622.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 18 Jan 2007 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/01/18/94622.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/94622.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/01/18/94622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/94622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/94622.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于会话beans																Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->												会话 Bean 特征会话 Bean 的定义特征必须与一个应用程序内的非持久独立状态有关。看待会话 Bean 的...&nbsp;&nbsp;<a href='http://www.blogjava.net/youngturk/archive/2007/01/18/94622.html'>阅读全文</a><img src ="http://www.blogjava.net/youngturk/aggbug/94622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-01-18 13:58 <a href="http://www.blogjava.net/youngturk/archive/2007/01/18/94622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB的最最基本知识</title><link>http://www.blogjava.net/youngturk/archive/2007/01/18/94587.html</link><dc:creator>思宽</dc:creator><author>思宽</author><pubDate>Thu, 18 Jan 2007 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/01/18/94587.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/94587.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/01/18/94587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/94587.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/94587.html</trackback:ping><description><![CDATA[
		<p>           EJB的构成</p>
		<p>     企业Bean实例 企业Bean类的Java对象实例，他含有本地或远程接口中定义方法的实现供业务逻辑使用。企业Bean不具备网络能力。</p>
		<p>     远程接口  含有企业Bean类暴露的业务方法签名，是一Java接口。在EJB开发模型中，客户代码总是同本地接口或远程接口交互，从不直接与企业Bean实例交互。远程接口遵守Java RMI-IIOP 定义的规则，所以具有网络功能。</p>
		<p>    本地接口  远程接口的高性能版本（当客户调用的企业Bean组件与客户处在统一JVM中）。使用本地接口访问EJB，不要经过存根，骨架，网络调用，参数的marshal和demarshal等操作。</p>
		<p>  EJB对象 容器生成的远程接口实现。 它处于客户与企业Bean的实例之间，嫩构处理中间件相关问题，而且它还具有网络功能。</p>
		<p>  本地对象 EBJ对象的高性能版本</p>
		<p>  Home 接口 EJB对象的工厂。它是Java接口，为获得EJB对象，客户必须使用Home接口。由于客户能够跨越网络使用Home接口，因此它具有网络功能。</p>
		<p>Home对象  容器生成的Home接口实现。Home对象也具有网络功能，并遵守RMI-IIOP规则。</p>
<img src ="http://www.blogjava.net/youngturk/aggbug/94587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">思宽</a> 2007-01-18 10:57 <a href="http://www.blogjava.net/youngturk/archive/2007/01/18/94587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>