下载本文示例代码
好了,我们现在在orion目录下,我们运行java -jar orion来启动orion server后会发现如下的提示: Auto-deploying helloejb (New server version detected)... Auto-deploying helloejb-ejb.jar (No previous deployment found)... done. Orion/1.3.8 initialized 这就说明系统找到了我们进行打包的ear文件,并且没有发生问题。同时在orion\application-deployments目录中会多出一个helloejb的目录,这其中会存储所有的helloejb的设置文件状态,如果你改动了系统发现系统没有按照改动产生应用。可以试着重新启动orion,如果还不能改变,哪么我们可以删除这个目录,orion在重新运行时就会像上面一样重新识别ear文件。同时我们还可以在存放ear文件的目录(在我的计算机上是c:\hdsite\rel)orion会自动把ear文件分解开来寻找相应的文件来使用。这是一个小的插曲,我们完全可以忽略这些,开始看一下我们的伟大工程的第一步: 我们打开浏览器,由于我是在一台计算机上所以我输入 就可以看到这样的页面: Time stamp: Sun Dec 17 22:15:15 CST 2000 Hello type: Hello_StatelessSessionBeanWrapper0 Answer: Hello HD... 如果你得到了这样的信息,哪么你就成功的完成了一个session bean与servlet ejb client的实例。如果再回过头去理解EJB的构建框架将十分的有利。 下一步,我们会做一个更为复杂的工作-建立一个entity bean。同时我们将这个entity bean连接到数据库上,与数据库中的一个表进行关联,存储用户输入的数据。同时我们使用jsp来与用户进行交互处理,用它来调用ejb与数据库进行存取操作。这个应用主要是通过一个web页面让用户登录到服务器上,来管理自己的地址本。这个地址本由许多人的地址组成。我们需要在刚才所建立的目录中再加入几个目录如下: hdsite/src/java/net/chinacode/addressbook hdsite/src/jsp hdsite/src/web 这里第一个目录存放addressbook的ejb相关文件,jsp目录存放所有的jsp文件,web目录则是存放所有的html源文件。我们先来写Home Interface,它与session bean的Home Interface没有什么区别,因为他们都是继承自EJBHome,只是create不太一样,如下所示:package net.chinacode.addressbook;import java.rmi.*;import java.util.*;import javax.ejb.*;public interface AddressBook extends EJBHome { public AddressEntry create(String name, String address, String city) throws CreateException, RemoteException; public AddressEntry findByPrimaryKey(String name) throws FinderException, RemoteException; public Collection findAll() throws FinderException, RemoteException;} 我们将这个文件存入hdsite/src/java/net/chinacode/addressbook/AddressBook.java文件中。 接下来我们完成Remote Interface,由上面的creat的返回值我们就知道它的类名应该是AddressEntry。但是我们还需要考虑的是这个EJB要向用户完成什么样的方法(或是说属性)。我们做为例子,定义一个地址由人名、城市、地址组成。我们在数据库中由人名组成主键,这样就不会出现记录重复的现像,哪么也同时说明人名将是一个只读的属性。依照一个Bean的属性的规则,我们构建Remote interface的代码如下:package net.chinacode.addressbook;import javax.ejb.*;import java.rmi.*;public interface AddressEntry extends EJBObject { public String getName() throws RemoteException; public String getAddress() throws RemoteException; public String getCity() throws RemoteException; public void setAddress(String newAddress) throws RemoteException; public void setCity(String newCity) throws RemoteException;} 这可以可注意Name属性只有get而没有set,这就形成了Name是一个只读的属性。
好了,我们现在在orion目录下,我们运行java -jar orion来启动orion server后会发现如下的提示: Auto-deploying helloejb (New server version detected)... Auto-deploying helloejb-ejb.jar (No previous deployment found)... done. Orion/1.3.8 initialized 这就说明系统找到了我们进行打包的ear文件,并且没有发生问题。同时在orion\application-deployments目录中会多出一个helloejb的目录,这其中会存储所有的helloejb的设置文件状态,如果你改动了系统发现系统没有按照改动产生应用。可以试着重新启动orion,如果还不能改变,哪么我们可以删除这个目录,orion在重新运行时就会像上面一样重新识别ear文件。同时我们还可以在存放ear文件的目录(在我的计算机上是c:\hdsite\rel)orion会自动把ear文件分解开来寻找相应的文件来使用。这是一个小的插曲,我们完全可以忽略这些,开始看一下我们的伟大工程的第一步: 我们打开浏览器,由于我是在一台计算机上所以我输入 就可以看到这样的页面: Time stamp: Sun Dec 17 22:15:15 CST 2000 Hello type: Hello_StatelessSessionBeanWrapper0 Answer: Hello HD... 如果你得到了这样的信息,哪么你就成功的完成了一个session bean与servlet ejb client的实例。如果再回过头去理解EJB的构建框架将十分的有利。 下一步,我们会做一个更为复杂的工作-建立一个entity bean。同时我们将这个entity bean连接到数据库上,与数据库中的一个表进行关联,存储用户输入的数据。同时我们使用jsp来与用户进行交互处理,用它来调用ejb与数据库进行存取操作。这个应用主要是通过一个web页面让用户登录到服务器上,来管理自己的地址本。这个地址本由许多人的地址组成。我们需要在刚才所建立的目录中再加入几个目录如下: hdsite/src/java/net/chinacode/addressbook hdsite/src/jsp hdsite/src/web 这里第一个目录存放addressbook的ejb相关文件,jsp目录存放所有的jsp文件,web目录则是存放所有的html源文件。我们先来写Home Interface,它与session bean的Home Interface没有什么区别,因为他们都是继承自EJBHome,只是create不太一样,如下所示:package net.chinacode.addressbook;import java.rmi.*;import java.util.*;import javax.ejb.*;public interface AddressBook extends EJBHome { public AddressEntry create(String name, String address, String city) throws CreateException, RemoteException; public AddressEntry findByPrimaryKey(String name) throws FinderException, RemoteException; public Collection findAll() throws FinderException, RemoteException;} 我们将这个文件存入hdsite/src/java/net/chinacode/addressbook/AddressBook.java文件中。 接下来我们完成Remote Interface,由上面的creat的返回值我们就知道它的类名应该是AddressEntry。但是我们还需要考虑的是这个EJB要向用户完成什么样的方法(或是说属性)。我们做为例子,定义一个地址由人名、城市、地址组成。我们在数据库中由人名组成主键,这样就不会出现记录重复的现像,哪么也同时说明人名将是一个只读的属性。依照一个Bean的属性的规则,我们构建Remote interface的代码如下:package net.chinacode.addressbook;import javax.ejb.*;import java.rmi.*;public interface AddressEntry extends EJBObject { public String getName() throws RemoteException; public String getAddress() throws RemoteException; public String getCity() throws RemoteException; public void setAddress(String newAddress) throws RemoteException; public void setCity(String newCity) throws RemoteException;} 这可以可注意Name属性只有get而没有set,这就形成了Name是一个只读的属性。
下载本文示例代码
建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean建立entity bean
阅读(110) | 评论(0) | 转发(0) |