-------------========EJB 環境配置========---------------
1. 環境配置
1.1 解壓縮JBoss伺服器
解壓縮jboss-4.2.2.GA,存放目錄:D:/Software/jboss-4.2.2.GA
1.2 解壓縮JBoss IDE開發工具
解壓縮JBossIDE-2.0.0.Beta2-Bundle-win32,存放目錄:D:/Software/JBossIDE-2.0.0.Beta2-Bundle-win32
1.3 向JBoss IDE中內建JBoss伺服器
1.3.1 在工具條中點選JBoss server的圖示->new server --> Jboss inc --> JBoss As 4.0 --> next
配置伺服器資訊:
name:JBoss
Runtime information home Directory:D:/Software/jboss-4.2.2.GA(JBoss伺服器安裝目錄)
JRE:jdk1.5.0_09(在喜好選項中配置window --> Java --> Installed JREs,選擇添加,選擇jdk1.5暫時具有更好的相容性)
Configuration:all(選擇JBoss啟動使用者,使用all支援EJB)
1.3.2 選擇JBoss配置服務
在JBoss伺服器圖示 --> set Default server --> 選中我們剛才設定的伺服器;
1.3.3 啟動JBoss伺服器
確定可以正常啟動JBoss伺服器;
1.3.4 以上配置完成,系統會自動的在Package Explorer中會存在一個Server的工程;
1.3.5 處理jboss-ejb3x.jar
拷貝:/jboss-4.2.2.GA/client/jboss-ejb3x.jar
到:/jboss-4.2.2.GA/server/all/deploy/ejb3.deployer
這裡缺少這個包,如果不添加建立工程會出現錯誤;
-------------========My frist EJB project========---------------
2 建立HelloEJB
2.1 伺服器端配置
2.1.1 建立EJB 3.0工程
在Package Explorer中建立一個EJB3.0 --> EJB 3.0 Project -->填寫工程名稱 -->select a jboss
Configuration ,選擇一個EJB server,選擇剛才配置的伺服器;--> finished;
2.1.2 在src中添加包,比如com.ejb
2.1.3 添加Ejb Session bean
在New --> EJB 3.0 -->選擇Session Bean -->next -->填寫一個Bean name:Hello;
這是系統會自動的在com.ejb添加一個Hello.java(遠端接口)和HelloBean.java(實作類)檔案
2.1.4 為Hello.java添加一個方法:
public String say(String name);
為HelloBean.java添加一個實作方法:
public String say(String name) {
String temp = "----="+ name + "=----,Hello;this is my frist EJB project";
System.out.println(temp);
return temp;
}
2.1.5 釋出EJB元件
2.1.5.1 啟動Jboss server
2.1.5.2 釋出EJB元件
在工程上點選右件選擇Export -->Java -->JAR file
釋出前:把右上角x.classpath和x.project選項除去;
釋出到Jboss路徑:D:/Software/jboss-4.2.2.GA/server/all/deploy/hello.jar(一定要選擇在all使用者下)
--到此Ejb 元件釋出完成,下面我們繼續釋出用戶端程式;
2.2 建立用戶端程式
2.2.1 打開MyEclipse程式建立一個Web project程式
2.2.2 導入JBoss client 下jbossall-client.jar檔案(甚至可以把clien下的所有檔案都拷貝,建議隻拷貝一個jbossall-client.jar);位置:D:/Software/jboss-4.2.2.GA/client,導入到web project/WEB-INF/lib下;
--其實隻使用jbossall-client.jar檔案
同時導入hello.jar(剛才釋出的Ejb元件包),位置:D:/Software/jboss-4.2.2.GA/server/all/deploy/hello.jar,導入到web project/WEB-INF/lib下;
2.2.3 寫用戶端程式調用遠端EJB元件
2.2.3.1 用java檔案調用,建立一個java檔案,内容如下:
package com.ejb;
import javax.naming.Context;
import javax.naming.InitialContext;
public class ejbTest {
public static void main(String[] args) throws Exception {
new ejbTest();
}
public ejbTest() throws Exception {
Context ct = new InitialContext();
Hello hello = (Hello) ct.lookup("HelloBean/remote");
System.out.println(hello.say("Jack"));
}
}
--成功調用後,可以在用戶端和伺服器同時看到相應的輸出資訊;
2.2.3.2 采用頁面調用
修改index.jsp頁面的内容如下:
...
//添加處理代碼
<%
//加載遠端接口配置
Properties pro = new Properties();
pro.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
pro.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
pro.setProperty("java.naming.provider.url", "localhost:1099");
Context ct = new InitialContext(pro);
//執行個體化對象
Hello hello = (Hello)ct.lookup("HelloBean/remote");
String ejbContent = hello.say("Kevinb");
%>
在<body>ejbContent:<%=ejbContent %></body>
--連接配接成功後可以在用戶端頁面和伺服器中都可以到相應的輸出資訊;
3.處理JBoss工程移動位置後加載錯誤(找不到lib)
3.1 問題:出現錯誤主要的原因是新位置和老位置的JBoss位置不同造成,是以工程下的EJB3 lib不能得到有效的加載;
3.2 解決方法:
打開工程右鍵-->property-->Java build path-->libraries-->JBoss EJB3 libraries-->選中-->Edit-->重新指定JBoss伺服器;