手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

在Java EE环境下使用Kodo EJB

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

BookHome接口

package org.vivianj.kodo.examples.ejb.stateless; 



import java.rmi.RemoteException; 



import javax.ejb.CreateException; 

import javax.ejb.EJBHome; 



/** 

 * BookHome 类提供Session Bean的home接口 

 */ 

public interface BookHome extends EJBHome { 

 public BookRemote create() throws CreateException, RemoteException; 

} 

BookRemote接口

package org.vivianj.kodo.examples.ejb.stateless; 



import java.rmi.RemoteException; 

import java.util.Collection; 



import javax.ejb.EJBObject; 



import org.vivianj.kodo.examples.beans.Book; 



/** 

 * BookRemote 类提供Session Bean的remote接口 

 */ 

public interface BookRemote extends EJBObject { 

 public Book getBookById(int id) throws RemoteException; 



 public void updateBook(Book book) throws RemoteException; 



 public void createBook(Book book) throws RemoteException; 



 public void deleteBook(Book book) throws RemoteException; 



 public Collection getBooks(String queryString) throws RemoteException; 



} 

  编写EJB描述符文件

  为了将该Session Bean发布到Weblogic9中,我们还需要提供两个配置文件:ejb-jar.xml和weblogic-ejb-jar.xml,作者提供的演示实例中,这两个文件的内容如下,开发者可以根据自己的实际环境进行调整。

  ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?> 

<ejb-jar 

 xmlns="http://java.sun.com/xml/ns/j2ee" 

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1"> <display-name>Sample Kodo EJB</display-name> <enterprise-beans> <session> <ejb-name>BookEJB</ejb-name> <home>org.vivianj.kodo.examples.ejb.stateless.BookHome</home> <remote>org.vivianj.kodo.examples.ejb.stateless.BookRemote</remote> <ejb-class>org.vivianj.kodo.examples.ejb.stateless.BookBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>BookEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>

weblogic-ejb-jar.xml

<?xml version="1.0"?> 

<weblogic-ejb-jar 

 xmlns="http://www.bea.com/ns/weblogic/90"  

 xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" 

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

 xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 

 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd"> 

 <weblogic-enterprise-bean> 

  <ejb-name>BookEJB</ejb-name> 

  <jndi-name>ejb/kodo/book</jndi-name> 

 </weblogic-enterprise-bean> 

</weblogic-ejb-jar> 

  打包部署

  基于Kodo EJB开发的EJB打包和通常的EJB打包没有什么特别,部署过程也没有什么特别,比较简单的方式是使用配置工具创建新的域后,将打包好的EJB jar文件直接拷贝到域目录下的autodeploy目录下。

  完整地打包部署过程这里不再赘述,如果大家还不是十分熟悉,请大家参考Weblogic Server的在线帮助文档http://edocs.bea.com/wls/docs91/index.html

  在这里要给大家介绍的是创建Weblogic9域后如何配置Kodo的两部分内容:

  1. 安装Kodo

    Windows平台下创建Weblogic9域后,可以在该域所在目录下找到bin目录下的setDomainEnv.cmd文件。打开该文件,在其中找到set PRE_CLASSPATH=这一行,这里假如地jar文件将被加入Weblogic9服务器的启动CLASSPATH中,因此我们把%KODO_HOME%/lib目录下所有jar文件增加到PRE_CLASSPATH中。下面是作者的设置情况(没有全部填写完整,请开发者根据实际情况填写完整)。

    set PRE_CLASSPATH= F:/OpenSource/kodo-4.0.0EA4/lib/kodo.jar; F:/OpenSource/kodo-4.0.0EA4/lib/jta-spec1_0_1.jar;F:/OpenSource/kodo-4.0.0EA4/lib/jca1.0.jar;F:/OpenSource/kodo-4.0.0EA4/lib/jdo-2.0.jar;

    可选择的,你可以将数据库服务器的驱动jar和其他应用中需要的jar文件放在这个变量下。
  1. 提供Kodo的license

    Kodo使用时需要提供License文件,在《Kodo EJB:符合EJB3规范的持久层框架》一文中,我们知道Kodo的License信息保存在应用的META-INF目录中的kodo.xml文件中,和应用一起使用,可是在JAVA EE环境下,我们是将kodo.persistence.EntityManagerFactoryImpl的实例绑定到JNDI服务上,这个过程是服务器完成的,将License放在EJB包中并不能让服务器获取License的信息,查看Kodo的帮助文档,也没有看到相应的实施指南,不过作者经过测试后发现下面的方法可以完成这部分工作。
    1. 准备一个license.jar文件
      license.jar中包含META-INF目录,该目录下包含有提供Kodo License的kodo.xml文件。license.jar文件的结构如下:



    2. 将该jar文件加入到Weblogic域的CLASSPATH中

      请参考前面一步“安装Kodo”的步骤将license.jar文件加入Weblogic域的CLASSPATH中。

      文章整理:西部数码--专业提供域名注册虚拟主机服务
      http://www.west263.com
      以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!