日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EJB3.0开发环境的搭建

發布時間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB3.0开发环境的搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EJB Container的介紹
SUN公司正式推出了EJB的規范之后,在眾多的公司和開發者中引起了非常大的反響。標志著用Java開發企業級應用系統將變的非常easy。很多公司都已經推出了或正打算EJB的產品。

SUN公司對EJB的定義是:EJB是用于開發和部署多層結構的、分布式的、面向對象的Java 應用系統的跨平臺的構件體系結構。採用EJB能夠使開發商業應用系統變得easy,應用系統能夠在一個支持EJB的環境中開發,開發完之后部署在其它的環境中,隨著需求的改變,應用系統能夠不加改動地遷移到其它功能更強、更復雜的server上。

在EJB的規范中,提到了6中角色,包含 Bean提供者,應用程序裝配者,EJB容器,EJB配置工具,EJB服務提供者,系統管理員。這里面,EJB容器是EJB之所以可以執行的核心。EJB 容器管理著EJB的創建,撤消,激活,去活,與數據庫的連接等等重要的核心工作。

EJB規范的出現對電子商務發展起了非常大的推動作用。如今大型的電子商務站點,都是採用EJB技術的應用server來構建的。如今應用比較廣泛的,支持EJB的應用server中,已經產品化了的最基本的是: IBM的WebSphere,BEA的WebLogic另外,還有開源的如JBoss。

IBM WebSphere應用server是一個完好的,開放的Web應用server。它是IBM e-business應用架構的核心。WebSphere 應用server 提供三個等級的版本號,他們是:標準版(Standard Edition),高級版(Advanced Edition),企業版(Enterprise Edition)。當中,在高級版中開始支持EJB的編程模型。在企業版中提供一個高可靠的解決方式,使其可以移植到關鍵性的企業環境。EJB是WebSphere最核心的對象技術之中的一個,它提供了具有交易功能的server端的Java 組件,同一時候又是一種新型的對象分布技術編程模型。使用EJB組件完畢的應用,會支持更高級的基于數據庫的交易處理功能,如多個數據庫之間的更新,兩階段提交等。WebSphere是IBM整個一套開發,應用server的套件。他把EJB和IBM其他的優秀的產品(TXSerise 和Component Broker)結合在了一起。在詳細的應用中,基于安全的考慮,性能考慮和系統管理考慮,還可以添加Firewall,WebShpere Performance Pack 和 Tivoli。所以,可能IBM的EJB Container不一定是最好的,可是,WebSphere中的EJB和IBM其他產品的結合卻是做的最好的。然后,我們再來看看BEA的WebLogic: BEA公司宣布:該公司領先實現了對Enterprise JavaBeans(EJB)2.0標準的支持。憑借BEA WebLogic Server對EJB的支持,BEA可幫助開發者更快地推出電子商務應用系統,從而讓開發者極大地受益于這一業內最新標準。作為server端商務邏輯的行業標準和Java2平臺的基石,Enterprirse JavaBeans是BEA WebLogic應用server的主要技術。Enterprise JavaBeans使得開發者可以專心地開發其應用系統和電子商務設想的商務邏輯,而不必為基礎結構的構筑而分心。

盡管EJB3.0剛剛公布,但已經有非常多EJBserver支持EJB3.0了,這當中跟得最緊的是JBoss,其次WebLogic、WebSphere等也隨之跟進。因此,各大廠商還是對EJB3.0非??春玫?。

EJ3.0的開發工具
1>下載安裝JDK5.0 http://java.sun.com/j2se/1.5.0/download.jsp

2>下載安裝開發工具JBossIDE(內含Eclipse 3.2),直接解壓縮就可以完畢安裝。

http://prdownloads.sourceforge.net/jboss/JBossIDE-2.0.0.Beta2-Bundle-win32.zip?download想使用中文的朋友能夠下載中文語言包NLpack1-eclipse-SDK-3.2-win32.zip

下載路徑:

http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/L-3.2_Language_Packs-200607121700/NLpack1-eclipse-SDK-3.2-win32.zip

解壓語言包,把features及plugins目錄拷貝復蓋JBossIDE安裝目錄下的features及plugins目錄。假設漢化失敗,可能是你安裝語言包之前執行過eclipse,解決的方法是:把eclipse安裝目錄下的configuration目錄刪除,從JBossIDE安裝包中解壓出configuration目錄,把configuration目錄復制到JBossIDE安裝目錄下。

3>下載和安裝JBOSS-4.0.5.GAserver

http://prdownloads.sourceforge.net/jboss/jems-installer-1.2.0.CR1.jar?download文件下載,這里要注意:最好不要用下載工具下載,直接通過”目標另存為”下載。

安裝方法:

雙擊jems-installer-1.2.0.CR1.jar文件,或者在DOS命令下運行:

java -jar G:/soft/jems-installer-1.2.0.CR1.jar,G:/soft為Jboss安裝文件所在文件夾

安裝界面例如以下:


圖4-1安裝初始界面

這一步是讓你選擇安裝語言,以后點“Next”并允許許可協議,直到選擇安裝文件夾(例如以下圖)。

圖4-2選擇安裝文件夾界面

建議不要安裝在Program Files文件夾,否則一些應用會導致莫名的錯誤。

圖4-3安裝提示界面

跟著選擇一個安裝類型,本文選擇帶集群功能的安裝選項“ejb3-clustered”,例如以下圖

圖4-4選擇ejb3-clustered界面

點下一步,選擇advance

圖4-5選擇Advance界面

在Name輸入欄中輸入 all

圖4-6輸入all界面

點下一步,直到出現下圖:

圖4-7輸入password界面

四個選框都選上。點下一步就開始安裝了。

安裝完后請在“系統變量”里加入JBOSS_HOME 變量,值為Jboss的安裝路徑。例如以下圖

圖4-8設置系統變量界面

如今驗證安裝是否成功。在Dos命令窗體下運行:

C:/javaserver/jboss-4.0.5.GA/bin run -c all

這個命令用作啟動jboss

觀察控制臺有沒有Java的例外拋出。假設沒有例外并看到下圖,恭喜你,成功安裝了。

圖4-9正常啟動界面

你能夠輸入http://localhost:8080來到Jboss的歡迎主頁。在JBoss Management 欄中點擊”JMX Console”進入Jboss的管理界面,這里須要你輸入username及password,假設你在安裝的時候依照教程設置了Jboss管理臺username及password,那么username及password都是admin。

假設啟動jboss出現例外,先看看jboss所用port有沒有被占(如1099,1098 ,8080, 8083等port)。能夠下載port查看器(Active Ports)進行檢查,假設port被占用就關閉此進程。確定不是port被占用,那非常大可能是你的安裝JDK不對。

圖4-10JBOSS控制臺界面

輸入username和password

這樣server就成功安裝了。

圖4-11 JBOSS控制臺界面

4.3JOBSSserver
4.3.1JOBSS安裝文件夾
表4-1JBOSS安裝文件夾

JBoss中的部署
JBoss中的部署過程很的簡單、直接。在每個配置中,JBoss不斷的掃描一個特殊文件夾的變化:

[jboss安裝文件夾]/server/config-name/deploy

此文件夾一般被稱為“部署文件夾”。

你能夠把下列文件復制到此文件夾下:

* 不論什么jar庫(當中的類將被自己主動加入到JBoss的classpath中)

* EJB JAR

* WAR (Web Appliction aRrchive)

* EAR (Enterprise Application aRchive)

* 包括JBoss MBean定義的XML文件

* 一個包括EJB JAR、WAR或者EAR的解壓縮內容,并以.jar、.war或者.ear結尾的文件夾。要又一次部署不論什么上述文件(JAR、WAR、EAR、XML等),用新版本號的文件覆蓋曾經的就能夠了。JBoss會依據比較文件的時間發現改變,然后部署新的文件。要又一次部署一個文件夾,更新他的改動時間就可以。

怎樣進行EJB打包
要公布EJB時必須把她打成jar或ear包,打包的方式有非常多,如:jar命令行、集成開發環境的打包向導和Ant

任務。以下介紹Elispse打包向導和Ant打包任務。

1. Elispse打包向導

在Elispse開發環境下,能夠通過向導進行打包。右擊項目名稱,在跳出的菜單中選擇“導出”,在“導出”對話框選擇“Jar文件”,在“選擇要導出的資源”時,選擇源文件夾和用到的資源。然后選擇一個存放文件夾及文件名稱。點“完畢”就結束了打包。

2. Ant打包任務

採用Ant進行打包是比較方便的,也是作者推薦的打包方式。以下我們看一個簡單的打包任務。

<?xml version="1.0"?>

<project name="jartest" default="jar" basedir=".">

<property name="build.dir" value="/build" />

<property name="build.classes.dir" value="/classes" />

<target name="jar" description="打包成Jar">

<jar jarfile="/ejbfile.jar">

<fileset dir="">

<include name="**/*.

</jar>

</target>

</project>

上面建立了一個名為jartest的Ant項目,默認的任務為default="jar",項目的路徑為build.xml文件所在文件夾

basedir="." 。應用編繹過后的class文件已經存在于應用的/build/classes/文件夾下。Ant定義了一個屬性

“build.classes.dir”,他指向應用的/build/classes/文件夾。

<target name="jar" description="打包成Jar">定義了一個名叫jar的任務,description是描寫敘述信息。任務中使用jar

命令把/build/classes/文件夾下的全部class文件打包進jar文件,同一時候也把應用下的META-INF文件夾下的全部文件打

包進jar文件的META-INF文件夾。打包后的jar文件存放在應用文件夾下。文件名稱為:ejbfile.jar

?

4.3.4怎樣進行WEB應用打包
一個Web應用公布到Jbossserver時須要打成war包。本節將介紹jar命令行及Ant任務兩種war文件的打包方

式。

1.在命令行下用jar命令進行war文件打包

在打包前把文件存成下面結構:

WEB應用根文件夾

| -- **/*. jsp

| -- WEB-INF

| -- web.xml

| -- lib

| -- *.*

| -- classes

| -- **/*.class

?

在Dos窗體中進入到WEB應用根文件夾下,運行例如以下命令

jar cvf EJBTest.war *

此命令把WEB應用根文件夾下的全部文件及文件夾打包成EJBTest.war文件

比如WEB應用根文件夾在: D:/java/webapp/ ,命令輸入例如以下:

D:/java/webapp> jar cvf EJBTest.war *

2.在Ant任務中進行war文件打包

假設文件存放的結構如以下所看到的:

WEB應用根文件夾

|-- build.xml

|--**/*.jsp

|-- WEB-INF

| -- web.xml

| -- lib

| -- *.*

| -- classes

| -- **/*.class

那么Ant的war文件打包任務例如以下:

<?xml version="1.0"?>

<project name="wartest" default="war" basedir=".">

<target name="war" description="創建WEB公布包">

<war warfile="/EJBTest.war" webxml="/WEB-INF/web.xml">

<fileset dir="">

<include name="**"/>

<exclude name="build.xml" />

<exclude name="/WEB-INF/web.xml" />

</fileset>

</war>

</target>

</project>

<target name="war" description="創建WEB公布包"> 定義一個名叫war的任務。任務中運行war打包操作,把應用下除了build.xml, /WEB-INF/web.xml之外的全部目錄及文件打進war包,同一時候把webxml="/WEB-INF/web.xml"作為web應用的web.xml文件。

開發第一個HelloWorld EJB3.0程序
第一步:創建HelloWorldproject,在這里我們選擇Java Project

圖4-12 選擇Java Project界面

在以下的窗體里輸入project名

圖4-13 輸入project名界面

?

點擊next直到結束,并為此project加入ejb3.0jar包,例如以下圖所看到的: 這些類包都能夠在jboss安裝目錄的client,/server/all/deploy/jboss-aop-jdk50.deployer,/server/all/deploy/ejb3.deployer,/lib/endorsed等目錄下找到,或者在本書附帶的光盤源碼的Lib目錄下得到。

圖4-14 加入EJB3.0jar包界面

?

第二步:要定義一個會話Bean,首先須要定義一個包括他全部業務方法的接口。這個接口不須要不論什么凝視,就像普通的java接口那樣定義。調用EJB的client通過使用這個接口引用從EJB容器得到的會話Bean對象stub。接口的定義例如以下:

IHelloWorld.java:

package lesson2;

public interface IHelloWorld {

String sayHello(String name);

}

第三步:實現上面的接口并增加兩個凝視@Stateless , @Remote,第一個凝視定義這是一個無狀態會話Bean,第二個凝視指明這個無狀態Bean的remote接口。

經過上面的步驟一個僅僅存在Remote接口的無狀態會話Bean就開發完畢。無狀態會話Bean是一個簡單的POJO(純粹的面向對象思想的java對象),EJB3.0容器自己主動地實例化及管理這個Bean。以下是HelloWorld會話Bean的實現代碼:

HelloWorldBean.java 。實現類的命名規則是:接口+Bean ,如: HelloWorldBean

package lesson2;

?

import javax.ejb.Remote;

import javax.ejb.Stateless;

@Stateless

@Remote ({IHelloWorld.class})

public class HelloWorldBean implements IHelloWorld {

public String sayHello(String name) {

return name+"hello ,this is my first EJB";

}

}

HelloWorld會話Bean開發完了,如今我們把她她打成Jar包或EAR包公布到Jboss中。

鼠標右鍵點擊project,在彈出的菜單中選擇Export,彈出的窗體例如以下:選擇Jar file。

圖4-15 打成jar包界面

點擊next在以下的窗體中選擇jar文件的存放路徑。

圖4-16 選擇部署路徑界面

打完包后,啟動Jboss,把公布包復制到[jboss安裝文件夾]/server/all/deploy/文件夾下。觀察Jboss控制臺輸出,假設沒有拋出例外并看到以下的輸出界面,公布就算成功了。

圖4-17 部署成功界面

一旦公布成功,你就能夠在jboss 的管理平臺查看她們的JNDI名,輸入以下URL

http://localhost:8080/jmx-console/點擊service=JNDIView,查看EJB的JNDI名稱。(例如以下圖)

圖4-18 選擇JNDIView界面

在出現的頁面中,找到“List of MBean operations:”欄。點擊”Invoke”button

圖4-19 點擊Invoke界面

出現例如以下界面:

圖4-20 查找JNDI Name界面

在上圖中能夠看見HelloWorld會話Bean的JNDI名,JNDI名的組成規則是“上層名稱/下層名稱“,每層之間以”/”分隔。HelloWorld會話Bean的JNDI名是:HelloWorldBean/remote 。

HelloWorld會話Bean公布成功后,接下來介紹client怎樣訪問她。

當一個無狀態會話Bean公布到EJB容器時,容器就會為她創建一個對象stub,并把她注冊進容器的JNDI文件夾,client代碼使用她的JNDI名從容器獲得他的stub。通過這個stub,client能夠調用她的業務方法。

新建一個web project,命名為:EJBTest


圖4-21 選擇 Web Project界面

project創建完成后,創建一個jsp樣例代碼例如以下:

Test.jsp:

<%@ page contentType="text/html; charset=GBK"%>

<%@ page import="lesson2.IHelloWorld, javax.naming.*, java.util.Properties"%>

<%

Properties props = new Properties();

props.setProperty("java.naming.factory.initial",

"org.jnp.interfaces.NamingContextFactory");

props.setProperty("java.naming.provider.url", "localhost:1099");

props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx;

try {

ctx = new InitialContext(props);

IHelloWorld helloworld =

(IHelloWorld) ctx.lookup("HelloWorldBean/remote");

out.println(helloworld.sayHello("lxl"));

} catch (NamingException e) {

out.println(e.getMessage());

}

%>

把上面的client應用打成war文件。

圖4-22 選擇部署路徑界面

然后把她復制到“[jboss安裝文件夾]/server/all/deploy”文件夾下。假設war文件的文件名稱為 EJBTest.war ,我們能夠通過http://localhost:8080/EJBTest/Test.jsp訪問client。執行結果例如以下圖:

圖4-23執行結果界面

在這里作者要重點說明一下EJB JNDI名稱默認的命名規則,命名規則例如以下:

1> 假設EJB打包進后綴為*.ear的J2EE公布文件,默認的JNDI 名稱是

訪問本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local

訪問遠程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote

例:EJB HelloWorld打包進名為HelloWorld.ear的J2EE應用,訪問她遠程接口的JNDI 名是:

HelloWorld/HelloWorldBean/remote

2> 假設EJB應用打包成后綴為*.jar的公布文件, 默認的JNDI 名稱是

訪問本地接口:EJB-CLASS-NAME/local

訪問遠程接口:EJB-CLASS-NAME/remote

例: HelloWorld應用打包成HelloWorld.jar文件,訪問她遠程接口的JNDI名稱是:HelloWorldBean/remote

另外有一點要注意:EJB-CLASS-NAME 是不帶包名的,如com.foshanshop.ejb3.impl.HelloWorldBean僅僅需取

HelloWorldBean。

EJB3.0遠程調用
在正式的生產環境下,大部分調用EJB的client所在的server都為獨立的Tomcat或Resin 。以下介紹怎樣在

獨立的Tomcatserver中調用Jboss中的EJB。在獨立的Tomcatserver中調用EJB須要有下面步驟:

1> 依據應用的須要,把調用EJB所依賴的Jar包復制到tomcat下的/shared/lib文件夾或WEB應用的

WEB-INF/lib下,所依賴的Jar一般在jboss安裝文件夾的client,/server/all/deploy/jboss-aop-jdk50.deployer,

/server/all/deploy/ejb3.deployer,/lib/endorsed等目錄下。

以下的jar文件是必需的:

[jboss安裝文件夾]/client/jbossall-client.jar

[jboss安裝文件夾]/client/jboss-remoting.jar

[jboss安裝文件夾]/client/jboss-aop-jdk50-client.jar

[jboss安裝文件夾]/client/jboss-aspect-jdk50-client.jar

[jboss安裝文件夾]/client/jboss-ejb3-client.jar

[jboss安裝文件夾]/client/jboss-ejb3x.jar

[jboss安裝文件夾]/client/jboss-annotations-ejb3.jar

2> 把調用的EJB接口復制到應用的/WEB-INF/classes/文件夾下,假設有包名,須要把包和類一起拷過來。

注意,在部署web應用的server上,假設安裝的是Tomcatserver,它的安裝路徑不能出現空格,如:D:/Tomcat5.0不能象D:/Tomcat 5.0這樣帶空格的安裝文件夾,否則會出現以下的異常:java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.net.MalformedURLException: no protocol: 5.0/webapps/ROOT/WEB-INF/classes/]。如今把上述的HelloWorld EJB程序實現遠程調用:打包好的EJB組件部署在一臺機器的Jobssserver上,把server啟動起來,在部署web應用的機器上依照上述的兩個步驟把相關jar文件和用到的接口類拷到對應的文件夾下,把Test.jsp:文件里的

props.setProperty("java.naming.provider.url", "localhost:1099");這行的localhost改為EJB組件部署機器的IP,把web應用的project部署到Tomcat下,啟動Tomcat,就能夠看到執行的結果了。

4.6小結
本章主要介紹了EJB3.0開發環境的搭建。首先給讀者介紹了EJB的幾種基本的容器及EJB3.0的開發工具。本章以JBOSS為例具體介紹了開發環境的搭建過程。并給讀者介紹了第一個HelloWorld的EJB3.0開發部署和執行的具體過程,最后給讀者介紹了EJB3.0的遠程調用,相信通過本章的學習讀者已經掌握了EJB3.0開發的基本知識。為后面其它內容的學習打下了良好的基礎。

轉載于:https://www.cnblogs.com/zfyouxi/p/4345514.html

總結

以上是生活随笔為你收集整理的EJB3.0开发环境的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。