OpenEjb使用筆記--讓Tomcat可以部署EJB

1  OpenEJB概述

      Tomcat本不支持部署EJB,通過向其安裝OpenEjb,可使其支持。

2  安裝

2.1 下載

2.2  安裝

1、將下載的openejb.war 放在Tomcat的安裝目錄 webapps下。

2、啓動Tomcat

3、IE中輸入:http://localhost:8080/openejb 回車後顯示如下信息:

Welcome to the OpenEJB/Tomcat integration!

 

Now that OpenEJB has been installed, click on the "Testing your setup" link below to verify it. When everything is setup well, feel free to play around with the tools provided below!

 

OK!安裝成功,就這麼簡單!

4、測試一下:http://localhost:8080/openejb/viewjndi.jsp

3  部署

像往常一樣,開發一個Ejb工程。

接口:

@Remote

public interface GreeterRemote

{

    public String greet(String message);

    public List<Greeting> getAllGreetings();

}

實現類:

@Stateless

public class GreeterBean implements GreeterRemote,GreeterLocal{

    public List<Greeting> getAllGreetings(){

       

        List<Greeting> greetings = new ArrayList<Greeting>();

        Greeting greeting = new Greeting();

        greeting.setId(12);

        greeting.setName("bill gates");

        greetings.add(greeting);

        greeting = new Greeting();

        greeting.setId(334);

        greeting.setName("李寧");

        greetings.add(greeting);

        return greetings;

    }

 

    public String greet(String message){

       return "您好"+ message;

    }

}

 

      將此EJB工程打成jar包,比如放在D:\Tomcat\ejb下。注:“D:\Tomcat\ejb”是我自己建的。

     然後打開:Tomcat\conf\openejb.xml,</openejb>前的內容改爲:

<!--

#

#  The <Deployments> element can be used to configure file

#  paths where OpenEJB should look for ejb jars or ear files.

#

#  See http://openejb.apache.org/deployments.html

#

#  The below entry is simply a default and can be changed or deleted

<Deployments dir="apps/" />原來是這句,我們用不到,可以用下面的語句直接加載指定的ejb jar包。

-->

<Deployments jar="D:/Tomcat/ejb/OpenEjbTest.jar" />

重啓Tomcat,在瀏覽器輸入:http://127.0.0.1:8089/openejb/invokeobj.jsp

 

 

點擊其中的”Browse for an EJB”,轉到如下界面:

 

 

如果在其中能看到自己的EJB Bean,那就成功了。

4  客戶端調用

按照官方給出的說明:http://openejb.apache.org/3.0/clients.html,此處使用“Remote Client with HTTP (in tomcat)”方式。對上面部署的EJB調用的客戶端代碼如下:

public class GreeterBeanTest{

   

    public static void main(String[] args) throws NamingException {

      

       Properties p = new Properties();

       p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");

       p.put("java.naming.provider.url", "http://localhost:8089/openejb/ejb");

      

       InitialContext initialContext = new InitialContext(p);

      

       GreeterRemote greeterRemote =(GreeterRemote) initialContext.lookup("GreeterBeanRemote");

       String str="屈劍峯";

       System.out.println(greeterRemote.greet(str));

    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章