国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Oracle應用服務器實現(xiàn)Java CORBA

2019-11-18 14:08:15
字體:
來源:轉載
供稿:網(wǎng)友

  摘要:本文通過一個JCORBA應用實例,介紹了JCORBA的特點和如何在Oracle 應用服務器中部署java CORBA構件。

  要害詞:Oracle,CORBA,JCORBA,構件,Java

  Internet的迅速發(fā)展改變了傳統(tǒng)的信息交流方式和企業(yè)的運行方式,它已經(jīng)成為許多新興產(chǎn)業(yè)如電子商務、自助服務、網(wǎng)上購物和在線交易的媒介。越來越多的企業(yè)通過Internet構筑起自己企業(yè)的信息應用平臺,而JAVA語言以其易用性、跨平臺性、面向對象性等諸多優(yōu)點,正隨著這股潮流成為面向企業(yè)應用和Internet應用的流行網(wǎng)絡計算語言。許多企業(yè)正在將他們的商業(yè)應用如電子商務用JAVA來實現(xiàn),為了適應這種需求,Oracle公司推出其應用服務器產(chǎn)品OAS 4.0(Oracle application Server Version 4.0),它將Java虛擬機(Virtual Machine)內(nèi)置于 OAS4.0中,采用稱為Java加速器的自然編譯方法,將Java庫程序先編譯為標準的C代碼,再將C代碼在不同的CPU和操作系統(tǒng)的平臺上進行編譯,生成共享庫供Java程序調(diào)用,這種方式大大提高了Java程序的執(zhí)行速度。

  在OAS4.0中,Java應用有多種實現(xiàn)形式,其中以JCORBA(Java CORBA, 簡寫為JCO)以其靈活的客戶端調(diào)用,符合CORBA 2.0而廣受關注,同其它的一些CORBA實現(xiàn)平臺一樣,JCORBA構件在OAS 4.0中實現(xiàn)時,也融入了 Oracle一些自有的特點,下面通過介紹JCORBA應用實例"myStack"的開發(fā)過程,向大家介紹JCORBA的特點、開發(fā)和使用過程。

  一、 JCORBA開發(fā)工具

  開發(fā)JCORBA,你可以使用任何支持JAVA 1.1.4或以后版本的JAVA開發(fā)平臺進行開發(fā),如Oracle 公司Jdeveloper、SUN公司的JDK、BORLAND 公司的Jbuilder等。在本實例中我們使用 SUN 公司的JDK 1.1.5。

  二、 建立開發(fā)環(huán)境文件目錄

  在建立JCORBA應用以前,建議建立固定格式的目錄結構,這樣有利于對整個JCORBA應用進行治理,圖1 的目錄結構已指明了實例中各文件的相應位置,相應的文件在以后的工作不斷加入。

Oracle應用服務器實現(xiàn)Java CORBA 三、 建立目標應用程序

  目標應用程序包括一個類,其類名為ServerStack,它能實現(xiàn)簡單的棧操作,這個類可實現(xiàn)如下四個方法。

setStackSize() 設置棧的長度
getStackSize() 獲取棧的長度
push() 壓棧
pop() 從棧中彈出數(shù)據(jù)

  在這個類中,還提供了有關生命期的處理。

  ServerStack.java源代碼如下:

package myStack;
import oracle.oas.jco.*;
import java.util.PRoperties;
public class ServerStack implements Lifecycle
{
private int stackSize = 0;
private String stackElements[];
private int top = -1;
private ObjectManager mgr = null;
private Logger logger = null;
public void jcoCreate()
{
mgr = ObjectManager.getObjectManager(this);
logger = mgr.getLogger();
logger.setSeverity(Logger.LOG_SEVERITY_DEBUG);
try {
Properties env = mgr.getEnvironment();
setStackSize(Integer.parseInt(env.getProperty("initialStackSize")));
}
catch (Exception e) {
}
}
public void jcoDestroy() {
}
public void jcoPassivate()
throws NonReusableException
{
throw new NonReusableException();
}
public void jcoActivate() {
}
public int getStackSize()
{
logger.println(" Getting stack size...");
return stackSize;
}
public void setStackSize(int size) throws StackException
{
if (size < 0)
throw new StackException();
logger.println(" Setting stack size to " + size + "...");
top = -1;
stackSize = size;
stackElements = new String[size];
}
public void push(String value) throws StackException
{
if (top == stackSize - 1)
throw new StackException();
logger.println(" Pushing /"" + value + "/" onto the stack...");
stackElements[++top] = value;
}
public String pop() throws StackException
{
if (top == -1)
throw new StackException();
logger.println(" Popping the stack (returning element " + stackElements[top] + ")...");
return stackElements[top--];
}
}
  四、 建立遠程調(diào)用接口

  為了使客戶端能調(diào)用ServerStack中的方法,必須要有相應的接口程序,在接口程序中,應包含客戶端所能調(diào)用的所有方法,接口程序的程序名為ServerStackRemote.java。程序源代碼如下:



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武安市| 唐河县| 黔西县| 阳东县| 临邑县| 翼城县| 浪卡子县| 彝良县| 凌源市| 宁乡县| 水富县| 青龙| 盐亭县| 永清县| 衡南县| 浦北县| 蒲江县| 蓬安县| 高淳县| 沙河市| 留坝县| 花垣县| 巴南区| 清流县| 江都市| 东乡族自治县| 宜昌市| 葫芦岛市| 安西县| 淮北市| 广宗县| 赣榆县| 剑河县| 松原市| 保德县| 石门县| 银川市| 新密市| 津南区| 太原市| 前郭尔|