EJB 3.0

一直以來在各種 Framework 的協助下,
我從沒試著自己去實驗過 很單純的 EJB寫法,
今天初嘗 EJB 3.0 的單純寫法, 果然很簡單, 但是卻處處是陷阱…
搭配 JBoss 其實可以有一個非常快速的完成法,
這個在 JBoss 的官方網站就有教學網頁了!!
http://docs.jboss.org/ejb3/app-server/tutorial/
http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html
這兩個網頁寫得好極了!!….
不僅清楚, 更有快速上手的例子!!….
在這邊我也把我的放上來供大家參考!!…
1.  ServiceManagement .java
package org.jboss.tutorial.service.bean;
import org.jboss.ejb3.annotation.Management;
@Management
public interface ServiceManagement {
   void create() throws Exception;
   void start() throws Exception;
   void stop();
   void destroy();
}        
2. ServiceOneRemote.java
package org.jboss.tutorial.service.bean;
import javax.ejb.Remote;
@Remote
public interface ServiceOneRemote {
}
3. ServiceOne.java
package org.jboss.tutorial.service.bean;
import javax.ejb.Stateless;
@Stateless
public class ServiceOne implements ServiceOneRemote, ServiceManagement {
   public void create() throws Exception{
      System.out.println("ServiceOne – Creating");
   }
   public void start() throws Exception{
      System.out.println("ServiceOne – Starting");
   }
   public void stop(){
      System.out.println("ServiceOne – Stopping");
   }
   public void destroy(){
      System.out.println("ServiceOne – Destroying");
   }
}
4. 客戶端測試程式 ClientMain.java
package org.jboss.tutorial.service.bean;
import java.util.Properties;
import javax.naming.InitialContext;
import org.jboss.tutorial.service.bean.ServiceOneRemote;
public class ClientMain {
    public static InitialContext getInitialContext() throws javax.naming.NamingException {
        Properties p = new Properties();
        p.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        p.put(InitialContext.URL_PKG_PREFIXES, " org.jboss.naming:org.jnp.interfaces");
        p.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
        return new javax.naming.InitialContext(p);
    }
  
       public static void main(String[] args) throws Exception {
          InitialContext ctx = getInitialContext();
          ServiceOneRemote service = (ServiceOneRemote) ctx.lookup("ServiceOne/remote");
       }
}
廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s