UML软件工程组织

实体Bean 实例学习
来源:Matrix 作者:dsf
 

一、系统设置:
1.编辑工具:UltraEdit
2.应用服务器:Weblogic 8.1
3.数据库:MySQL4.0

二、基本类的编写:(例子源于MasteringEJB中的第6章的实体Bean实例)
1.Home接口: AccountHome.java
2.本地Home接口: AccountLocalHome.java
3.Remote接口: Account.java
4.Remote Home接口: AccountLocal.java
5.实现类: AccountBean.java
6.主健类: AccountPK.java
7.用户测试类: AccountClient.java

三、数据库设置
1. 数据库用MySQL中的test数据库;
2. 数据表为:
drop table accounts;
create table accounts (id varchar(64),ownername varchar(64),balance numeric(18));
3. 插入一条测试记录
insert into accounts(id,ownername,balance) values(“0000”,”Dosany”,1000000);

四、在WebLogic中设置数据连接池和数据源
1. 下载MySQL的JDBC驱动,并把它的路径加入到系统classpath中;
2. 启动WebLogic中的用户域,这个实例为 mydomain;
3. 打开WebLogic管理界面:http://localhost:7001/console,输入用户名和密码进入;
4. 进入Services-JDBC-ConnectionPools
5. 点击Configure a new JDBC Connection Pool... ,
6. Database Type:MySQL,DatabaseDriver:MySQL’s Driver(Type 4) Version:Any;
7. 点击 Continue;
8. Name:MySQLDatePool;DatabaseName:test;Host Name:127.0.0.1;
Port:3306;Database User Name:hhdsf;Password:baobao 下同;continue;
9. Driver Classname: org.gjt.mm.mysql.Driver
URL: jdbc:mysql://127.0.0.1:3306/test
10. Test Driver Configuration,可以看到成功;
注意:MySQL中的用户hhdsf是安装MySQL后加入的,因为MySQL安装后的默认用户是 root;密码是空,而在WebLogic中密码不能为空;

设置数据源:
1. 进入Services-JDBC-DataSources
2. 选择Configure a new JDBC Data Source
3. Name:MySQLDataSource;JNDI:mySqlDs;点击Next;
4. 在Connect to connection pool 中选择刚刚建立的connection pool;点击Next;
5. 点击Create,创建DataSource。

五、部署文件

1. Ejb-jar部署文件:


<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.
//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd&#39;>
<ejb-jar>
 <enterprise-beans>
  <entity>
   <ejb-name>Account</ejb-name>
   <home>AccountHome</home>
   <remote>Account</remote>
   <local-home>AccountLocalHome</local-home>
   <local>AccountLocal</local>
   <ejb-class>AccountBean</ejb-class>
   <persistence-type>Bean</persistence-type>
   <prim-key-class>AccountPK</prim-key-class>
   <reentrant>False</reentrant>

   <resource-ref>
    <res-ref-name>jdbc/ MySQLDatePool </res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
   </resource-ref>
  </entity>
 </enterprise-beans>
    
 <assembly-descriptor>
  <container-transaction>
   <method>
    <ejb-name>Account</ejb-name>
    <method-intf>Local</method-intf>
    <method-name>*</method-name>
   </method>
   <method>
    <ejb-name>Account</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
   </method>
   <trans-attribute>Required</trans-attribute>
  </container-transaction>
 </assembly-descriptor>
</ejb-jar>


2. weblogic-ejb-jar部署文件:


<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN' '
http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd&#39;>

<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>Account</ejb-name>
    <entity-descriptor>
      <entity-cache>    
    <max-beans-in-cache>100</max-beans-in-cache>
      </entity-cache>    
    </entity-descriptor>
    <reference-descriptor>
      <resource-description>
 <res-ref-name>jdbc/ MySQLDatePool </res-ref-name>
 <jndi-name> mySqlDs </jndi-name>
      </resource-description>
    </reference-descriptor>
    <jndi-name>AccountHome</jndi-name>
    <local-jndi-name>AccountLocalHome</local-jndi-name>
  </weblogic-enterprise-bean>
</weblogic-ejb-jar>


六、编译和运行

1. 编译命令:


@echo *******************************************************
@echo Cleaning things up...
@echo *******************************************************
md classes
md lib
del classes\*.class
del lib\*.jar
@echo *******************************************************
@echo Compiling files...
@echo *******************************************************
javac -d classes src\*.java
@echo *******************************************************
@echo Copying Deployment Descriptor...
@echo *******************************************************
md classes\META-INF
copy deployment\*.xml classes\META-INF
@echo *******************************************************
@echo Creating temporary ejb-jar file...
@echo *******************************************************
cd classes
jar cf ..\lib\tmp.jar *
cd ..
@echo *******************************************************
@echo Generating helper code, and creating new ejb-jar file...
@echo *******************************************************
pushd lib
java weblogic.ejbc tmp.jar -d EJB.jar
copy EJB.jar %DEPLOY_HOME%\Account.jar
popd
@echo *******************************************************
@echo Removing temporary ejb-jar file
@echo *******************************************************
del lib\tmp.jar


2. 运行测试客户端程序:


copy src\AccountClient.java classes
cd classes
javac AccountClient.java
del AccountClient.java
java -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
 -Djava.naming.provider.url=t3://localhost:7001 AccountClient
cd ..

 

版权所有:UML软件工程组织