麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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

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

  開發步驟(操作界面的圖片不能貼上,見諒!)

開發運行環境: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.companysz.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久艹综合 | 日本xxxx色视频在线观看免费, | 成人免费看视频 | h视频在线播放 | 色淫影院| 在线亚洲播放 | 亚洲操比视频 | 热99re久久免费视精品频软件 | 午夜视频在线 | 国产成人高清成人av片在线看 | 精品久久久久久久久久久久久 | 国产精品视频亚洲 | 一级做受毛片免费大片 | 成人午夜在线观看视频 | 国产精品久久久久免费视频 | 日韩字幕在线观看 | 国产福利视频 | 羞羞电影网 | 欧美伦理一区二区 | 国产一精品久久99无吗一高潮 | 成人毛片视频在线观看 | 欧美成人精品一区二区男人小说 | 午夜视频福利 | 日产精品久久久一区二区福利 | 鲁丝一区二区二区四区 | 毛片视频网站在线观看 | 国产成人精品免费视频大全办公室 | 成人毛片免费播放 | 蜜桃网在线观看 | 色播久久 | 久久美女色视频 | 国产精品久久久久久久久久久久午夜 | 欧美日韩在线视频一区 | av在线一区二区三区 | 国产精品久久久免费 | 成人一级毛片 | 欧美精品1区 | 久草在线观看首页 | 欧美亚洲国产成人 | 男女羞羞的视频 | 欧美视频首页 |