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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

EJB-02:EJB开发流程

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB-02:EJB开发流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、開發EJB的步驟

第一大步:開發編譯業務接口和Bean類

(1) 編寫業務接口和Bean類

(2) 編譯

第二大步:打包部署到JNDI服務器

(3) 提供部署描述文件

(4) 打包(編譯后的字節碼文件和部署描述文件)成ejb-jar

(5) 部署ejb-jar到容器

第三大步:測試

(6) 檢測部署是否成功(看容器是否發現)

(7) 識別客戶端程序來調用EJB

業務接口(Business Interface):

(1) 對客戶端暴露可以調用的方法,它是一個普通的Java接口,POJO類,或POJI。

(2) 業務接口可以劃分為兩類:A、遠程業務接口

?????? ???????B、本地業務接口

如果客戶端和EJB運行在同一個JVM中,我們應該用本地接口,否則只能用遠程業務接口。

二、EJB的編程模型和編程涉及的標注

Bean類(The Bean Class):

(1) Bean類也是一個POJO,實現了業務接口中的方法

(2) 在Bean類中一般帶有標注(Annotation),用于代替傳統的部署描述文件

?@stateless 無狀態(標注該類是一個無狀態的會話Bean)

?@Remote(XXX.class)(標注該Bean類的業務接口是XXX.class)

(3) Bean類要有缺省的構造方法

(4) Bean類可以不實現業務接口(因為標注已經說明),不過建議實現

(5) ejb-jar.xml(Optional)標準的部署描述文件

? 我們可以用EJB3.0中的標注來代替對描述文件的編寫。

EJB3.0使用了JAVA SE 5.0 中的注釋新特性,只要在方法上寫EJB規范的注釋,就可以不用來寫標準的部署表述,ejb-jar.xml這個要放到jar文件的mate-inf文件夾里。

<?xml version="1.0" encoding="UTF-8"?>

<ejb-jar? ?xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ??metadata-complete="true" version="3.0" ??xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

?<enterprise-beans>

? <session>

??? <display-name>HelloBean</display-name>

??? <ejb-name>HelloBean</ejb-name>

??? <business-remote>test.HelloRemote</business-remote>

??? <ejb-class>test.HelloBean</ejb-class>

??? <session-type>Stateless</session-type>

??? <transaction-type>Container</transaction-type>

??? <security-identity>

??????? <use-caller-identity/>

??? </security-identity>

? </session>

?</enterprise-beans>

</ejb-jar>

EJB Client(客戶端):

? (1) EJB不能夠被客戶端直接訪問,客戶端必須通過業務接口來調用EJB

? (2) EJB客戶端分為兩類:

??? A、EJB客戶端與EJB運行在同一個容器中→本地業務接口

??? B、EJB客戶端與EJB運行在不同的JVM中→遠程業務接口

?

EJB 容器(EJB Container):

? (1) EJB容器是一個運行在JVM上的程序

? (2) EJB容器為EJB提供中間件服務。

?

EJB客戶端的編程步驟:

1、運行客戶端前要加上在SUN的服務器文件夾中的lib下的javaee.jar和appserv-rt.jar

Tips:Java Runtime相關的包:javaee.jar(Java EE),appserw-rt.jar(Java 運行時) ,appserv-ws.jar appserv-jwsacc.jar(Web Service)

2、配置系統的JNDI的環境(客戶端所依賴的Object和Sun運行環境)

3、寫測試類,注意在測試類中也要有業務接口

? Step1:設置JNDI服務器入口信息( system.setProperty)

? Step2:初始化上下文

? Step3:查找JNDI服務器的Stub

? Step4:調用對象

EJB調用過程:

? (1) EJB容器將Stub綁定到JNDI服務器上,JNDI上使用的綁定(默認情況下)是遠程業務接口的全限定名。

? (2) 客戶端通過上下文(Context)的方法來查找JNDI服務器上綁定的Stub。

?

在廠商的部署描述中可以配置EJB的實例池,可以一次創建多個EJB的實例。

注意:EJB一定要先部署到服務器,EJB需要部署環境才能運行

EJB客戶端

public class Cilent {

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

?

??????? System.setProperty("jndi.factory","com.sun.jndi.cosnaming.CNCtxFactory");

??????? System.setProperty("jndi.provider.url","corbaloc::localhost:3007/NameSpace");

??????? Context ctx=new InitialContext();

??????? HelloRemote hello=(HelloRemote)ctx.lookup("test.HelloRemote");

??????? System.out.println(hello.hello());

??????? System.out.println(hello.helloword("lichen"));

??? }

???

}

?

注意:在寫客戶端時,要引入javaee.jar和appser-rt.jar還要引入已經編譯好的EJB的jar文件。

總結

以上是生活随笔為你收集整理的EJB-02:EJB开发流程的全部內容,希望文章能夠幫你解決所遇到的問題。

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