图解eclipse+myelcipse开发EJB

在开发ejb之前,我们先得配置好服务器,我使用的是Weblogic9.0中文版,关于Weblogic9.0配置请看我的另一片文章。配置Weblogic9.0
   
    首先需要配置好eclipse。我这里主要说明weblogic的配置。
    ejb19.jpg

    注意JDK选择JDK5.0的版本。
   
    顺便将weblogic8的配置也贴上来,供大家比较参考
    ejb18.jpg
   
    注意weblogic8的JDK版本必须是JDK1.4。
   
    接下来就开始我们的开发了。


ejb1.jpg

ejb2.jpg

ejb3.jpg

ejb4.jpg

ejb5.jpg

下面就是SessionBean的代码

30
 1 package com.ejb;
 2 
 3 import java.rmi.RemoteException;
 4 
 5 import javax.ejb.EJBException;
 6 import javax.ejb.SessionBean;
 7 import javax.ejb.SessionContext;
 8 
 9 /**
10  * XDoclet-based session bean.  The class must be declared
11  * public according to the EJB specification.
12  *
13  * To generate the EJB related files to this EJB:
14  *        - Add Standard EJB module to XDoclet project properties
15  *        - Customize XDoclet configuration for your appserver
16  *        - Run XDoclet
17  *
18  * Below are the xdoclet-related tags needed for this EJB.
19  * 
20  * @ejb.bean name="HelloWorld"
21  *           display-name="Name for HelloWorld"
22  *           description="Description for HelloWorld"
23  *           jndi-name="ejb/HelloWorld"
24  *           type="Stateless"
25  *           view-type="remote"
26  */
27 public class HelloWorld implements SessionBean {
28 
29     /** The session context */
30     private SessionContext context;
31 
32     public HelloWorld() {
33         super();
34         // TODO 自动生成构造函数存根
35     }
36 
37     /**
38      * Set the associated session context. The container calls this method 
39      * after the instance creation.
40      * 
41      * The enterprise bean instance should store the reference to the context 
42      * object in an instance variable.
43      * 
44      * This method is called with no transaction context. 
45      * 
46      * @throws EJBException Thrown if method fails due to system-level error.
47      */
48     public void setSessionContext(SessionContext newContext)
49         throws EJBException {
50         context = newContext;
51     }
52 
53     public void ejbRemove() throws EJBException, RemoteException {
54         // TODO 自动生成方法存根
55 
56     }
57 
58     public void ejbActivate() throws EJBException, RemoteException {
59         // TODO 自动生成方法存根
60 
61     }
62 
63     public void ejbPassivate() throws EJBException, RemoteException {
64         // TODO 自动生成方法存根
65 
66     }
67 
68     /**
69      * An example business method
70      *
71      * @ejb.interface-method view-type = "remote"
72      * 
73      * @throws EJBException Thrown if method fails due to system-level error.
74      */
75     public String hello() throws EJBException {
76         // rename and start putting your business logic here
77         return new String("HelloEJBWorld!");
78     }
79 
80 }
81 


其实就是修改了其中的一个方法:

 1 /**
 2      * An example business method
 3      *
 4      * @ejb.interface-method view-type = "remote"
 5      * 
 6      * @throws EJBException Thrown if method fails due to system-level error.
 7      */
 8     public String hello() throws EJBException {
 9         // rename and start putting your business logic here
10         return new String("HelloEJBWorld!");
11     }

注意:代码中的解释文字不要删除,因为XDoclet需要。

配置属性
ejb6.jpg

添加weblogic.jar。我的路径是:bea\weblogic90\server\lib\weblogic.jar
ejb16.jpg

ejb7.jpg

ejb8.jpg

ejb9.jpg

ejb10.jpg

ejb11.jpg

ejb12.jpg

ejb13.jpg

ejb14.jpg

ejb15.jpg

就下来写EJBTest类:

 1 package com;
 2 
 3 import java.rmi.RemoteException;
 4 import java.util.Properties;
 5 
 6 import javax.ejb.CreateException;
 7 import javax.naming.Context;
 8 import javax.naming.InitialContext;
 9 import javax.naming.NamingException;
10 
11 import com.interfaces.HelloWorld;
12 import com.interfaces.HelloWorldHome;
13 
14 public class EJBTest {
15 
16     /**
17      * @param args
18      */
19     public static void main(String[] args) {
20         // TODO 自动生成方法存根
21         Properties properties=new Properties();
22         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
23         properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
24         
25         Context context;
26         try {
27             context = new InitialContext(properties);
28             HelloWorldHome hwh=(HelloWorldHome)context.lookup("ejb/HelloWorld");
29             HelloWorld hw=hwh.create();
30             String s=hw.hello();
31             System.out.println(s);
32         } catch (NamingException e) {
33             // TODO 自动生成 catch 块
34             e.printStackTrace();
35         } catch (RemoteException e) {
36             // TODO 自动生成 catch 块
37             e.printStackTrace();
38         } catch (CreateException e) {
39             // TODO 自动生成 catch 块
40             e.printStackTrace();
41         }
42         
43     }
44 
45 
46 }
47 

 


最后就是看结果了,先启动weblogic,然后运行EJBTest程序。

ejb17.jpg

posted on 2012-06-14 14:37  ycty  阅读(228)  评论(0编辑  收藏  举报