亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

會話EJB完整開發過程(以weblogic為服務器)

2019-11-18 16:17:11
字體:
來源:轉載
供稿:網友

  開發步驟(操作界面的圖片不能貼上,見諒?。?br />
開發運行環境:j2eesdk1.4+weblogic8.1
說明:本試驗已開發一個會話EJB為例,系統采用的應用服務器為weblogic8.1
1、編寫bean代碼(代碼的目錄在c:ejbhello下)
① 定義Home Interface
EJB容器通過EJB的Home Interface來創建EJB實例,和Remote Interface一樣,執行Home Interface的類由EJB生成工具生成。代碼如下:
package ejb.hello;
import javax.ejb.*;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.*;
/**
*只定義create方法
*/
public interface HelloHome extends EJBHome {

public Hello create() throws CreateException,
RemoteException;
}
②定義EJB遠程接口(Remote Interface)
任何一個EJB都是通過Remote Interface被調用,首先要在Remote Interface中定義這個EJB可以被外界調用的所有方法。執行Remote Interface的類由EJB生成工具生成,試驗的代碼如下:
package ejb.hello;

import java.rmi.RemoteException;
import java.rmi.Remote;
import javax.ejb.*;

public interface Hello extends EJBObject, Remote {

//定義供遠程調用的業務邏輯方法
public String getHello() throws RemoteException;
public String getStr() throws RemoteException;
}
③ EJB類的實現
在EJB類中,必須給出在Remote Interface中定義的遠程方法的具體實現。EJB類中還包括一些EJB規范中定義的必須實現的方法,這些方法都有比較統一的實現模版,只需花費精力在具體業務方法的實現上。試驗的代碼如下:
package ejb.hello;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
//類的實現
public class HelloBean implements sessionBean {
static final boolean verbose = true;
PRivate SessionContext ctx;
// Implement the methods in the SessionBean
// interface
public void ejbActivate() {
if (verbose)
System.out.println("ejbActivate called");
}
public void ejbRemove() {
if (verbose)
System.out.println("ejbRemove called");
}
public void ejbPassivate() {
if (verbose)
System.out.println("ejbPassivate called");
}
//Sets the session context.
public void setSessionContext(SessionContext ctx) {
if (verbose)
System.out.println("setSessionContext called");
this.ctx = ctx;
}
/**
* This method corresponds to the create method in
* the home interface HelloHome.java.
* The parameter sets of the two methods are
* identical. When the client calls
* HelloHome.create(), the container allocates an
* instance of the EJBean and calls ejbCreate().
*/
public void ejbCreate () {
if (verbose)
System.out.println("ejbCreate called");
}
//以下業務邏輯的實現
public String getStr()
throws RemoteException
{
return("...My First EJB Test??Lenper_xie...!");
}
}
④會話Bean的代碼完成后,編寫客戶端,代碼如下:
package ejb.hello;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import javax.ejb.*;
import java.rmi.RemoteException;

/**
*用weblogic
*/
public class HelloClient{
public static void main(String args[]){
String url = "t3://localhost:7001";
Context initCtx = null;
HelloHome hellohome = null;
try{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, url);
initCtx = new InitialContext(env);
}catch(Exception e){
System.out.println("Cannot get initial context: " + e.getMessage());
System.exit(1);
}
try{
hellohome = (HelloHome)initCtx.lookup("HelloHome");
Hello hello = hellohome.create();
String s = hello.getStr();
System.out.println(s);
}catch(Exception e){
System.out.println(e.getMessage());
System.exit(1);
}
}
}

2、將代碼進行編譯
先在c:ejbhello目錄下建一個目錄build,然后執行編譯命令如下:
javac ?Cd build *.java //-d build 表示編譯后的class放到build目錄下
編譯完之后會在build建立包的文件夾。

3、創建ejb-jar.xml部署描述文件
ejb-jar.xml文件是EJB的部署描述文件,包含EJB的各種配置信息,如是有狀態Bean(Stateful Bean) 還是無狀態Bean(Stateless Bean),交易類型等。以下是HelloBean的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar>
<description>Sidney.Xie EJB Test example</description>
<display-name>>Sidney.Xie EJBTest</display-name>
<small-icon></small-icon>
<large-icon></large-icon>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>ejb.hello.HelloHome</home>
<remote>ejb.hello.Hello</remote>
<ejb-class>ejb.hello.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Hello</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>

</ejb-jar>

4、創建weblogic-ejb-jar.xml文件
此文件適用于weblogic部署是用的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>Hello</ejb-name>
<jndi-name>HelloHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

5、創建jar文件用于部署到服務器上
在創建jar文件之前要將文件的目錄設定好,首先在ejbhellouild 建立一子目錄META-INF,將weblogic-ejb-jar.xml文件和ejb-jar.xml要放到該目錄下,然后制作jar文件.命令如下:
jar cvf Hello2.jar META-INF ejb //將META-INF和包ejb中的文件打包


6、創建能部署到weblogic上的jar文件
由于不同的廠商的應用服務器有不同的機制,所以要分別制作個服務器所識別的jar文件,試驗中使weblogic,使用以下命令:
java weblogic.ejbc -complier javac buildHello2.jar buildHello.jar



7、部署EJB到weblogic
首先要啟動weblogic服務,然后在瀏覽器中輸入http://localhost:7001/console,打開網頁后輸入帳號和密碼進入weblogic的控制臺,在控制臺中可以部署EJB,畫面如下:
進入部署頁面后根據提示將Hello.jar文件部署到服務器上去,會有顯示部署成功。
8、測試結果
在命令行執行client端程序來測試,進入目錄build下,執行命令java ejb.hello.HelloClient

(出處:http://www.49028c.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美国产高清va在线播| 久久成人综合视频| 91中文在线观看| 午夜精品久久久久久久99黑人| www.久久色.com| 国产精品视频不卡| 在线亚洲午夜片av大片| 国产91在线播放| 精品国产一区二区三区久久狼黑人| 国产一区二区三区久久精品| 91嫩草在线视频| 在线观看欧美日韩| 欧美一区二区大胆人体摄影专业网站| 精品亚洲一区二区三区四区五区| 欧美性高潮在线| 91精品国产高清久久久久久久久| 日韩精品有码在线观看| 九九热99久久久国产盗摄| 久久久国产精品x99av| 亚洲视频在线观看视频| 91欧美激情另类亚洲| 久久精品视频中文字幕| 久久高清视频免费| 国产精品久久久久高潮| 国产精品老牛影院在线观看| 精品一区二区三区四区在线| 国产精品视频白浆免费视频| 亚洲影院色无极综合| 中文字幕久久久| 亚洲四色影视在线观看| 亚洲国产精品热久久| www.亚洲免费视频| 狠狠久久五月精品中文字幕| 久色乳综合思思在线视频| 色狠狠久久aa北条麻妃| 欧美大学生性色视频| 欧美亚洲激情视频| 国产日韩在线亚洲字幕中文| 国产精品久久久久久久久影视| 成人福利视频网| 欧美性xxxxx极品娇小| 亚洲美女久久久| 欧美三级xxx| 日韩欧美在线一区| 亚洲人成电影在线播放| 亚州精品天堂中文字幕| 欧美综合在线第二页| 欧美日韩在线免费观看| 欧美精品一区二区免费| 日韩大片在线观看视频| 欧美综合一区第一页| 911国产网站尤物在线观看| 久久久成人av| 精品久久久久久国产| 欧美有码在线观看视频| 精品久久久久久中文字幕一区奶水| 久久伊人免费视频| 成人网欧美在线视频| 国产精品自产拍在线观看中文| 性视频1819p久久| 国产精品网站大全| 国产日韩av在线播放| 日本最新高清不卡中文字幕| 亚洲黄色免费三级| 国产精品久久久久福利| 成人国产在线激情| 亚洲精品aⅴ中文字幕乱码| 欧美午夜视频在线观看| 国产精品极品尤物在线观看| 热re91久久精品国99热蜜臀| 色偷偷偷亚洲综合网另类| 人人澡人人澡人人看欧美| 久久久久国产精品一区| 亚洲热线99精品视频| 亚洲sss综合天堂久久| 欧美猛交ⅹxxx乱大交视频| 在线观看免费高清视频97| 国产成人高潮免费观看精品| 日韩福利视频在线观看| 久久精品一本久久99精品| 亚洲国产成人精品久久久国产成人一区| 成人国产亚洲精品a区天堂华泰| 国产成人亚洲综合青青| 欧美激情精品久久久久| 69视频在线播放| 亚洲国产中文字幕久久网| www.日韩不卡电影av| 日韩三级影视基地| 久久久精品999| 色青青草原桃花久久综合| 成人免费在线视频网址| 国产精品视频yy9099| 亚洲精品av在线| 精品一区二区三区四区| 日韩电影中文字幕在线| 成人黄色在线播放| 欧美人在线视频| 欧美激情国产精品| 欧美最顶级丰满的aⅴ艳星| 91在线观看免费观看| 日韩精品欧美激情| 欧美性猛交xxxx免费看久久久| 日韩av毛片网| 日韩在线小视频| 最新国产精品拍自在线播放| 亚洲精品乱码久久久久久按摩观| 精品网站999www| 久久久免费观看视频| 亚洲一级一级97网| 欧美日韩成人在线视频| 欧美色视频日本高清在线观看| 精品国产鲁一鲁一区二区张丽| 九九久久国产精品| 这里只有精品视频| 欧美日韩综合视频| 国产综合视频在线观看| 欧美中文字幕精品| 欧美不卡视频一区发布| 国产精品69久久久久| 欧美日韩第一视频| 亚洲欧美成人网| 久久久久久com| 亚洲国产天堂久久国产91| 国产精品自产拍在线观看中文| 欧美裸体xxxx极品少妇| 精品久久久一区| 91极品女神在线| 欧美在线免费观看| 色777狠狠综合秋免鲁丝| 久久亚洲一区二区三区四区五区高| 国产精品91久久| 精品国产网站地址| 欧美午夜女人视频在线| 亚洲图片在区色| 亚洲国产精品电影在线观看| 亚洲性生活视频在线观看| 日韩欧美国产一区二区| 日韩中文字幕不卡视频| 日韩美女在线看| 韩国视频理论视频久久| 色99之美女主播在线视频| 成人a在线观看| 欧美一级片一区| 亚洲自拍偷拍第一页| 亚洲精品电影在线| 日韩一区二区三区xxxx| 午夜精品美女自拍福到在线| 亚洲最大在线视频| 国产精品久久久久久五月尺| 欧美大片第1页| 国产精品亚洲一区二区三区| 欧美人交a欧美精品| 欧美国产第二页| 日韩一区av在线| 日韩欧美在线免费观看| 国产精品久久久久久久久久久不卡| 亚洲黄色有码视频| 国产日韩欧美在线| 国产精品高潮在线| 欧美在线一级视频| 中文字幕不卡在线视频极品| 日韩欧美精品网址| 久久国产精品久久久久久久久久| 亚洲少妇激情视频|