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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JES服务程序

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JES服务程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JES,是Java嵌入服務器-Java Embedded Server的縮寫。在嵌入系統中使用Java,是Java跨平臺戰略的重要組成部分。國內目前并無比較系統的中文文獻。
從最簡單的包(bundle)開始
簡介
每個包(bundle)都至少需要一個包激活器類,用來激活包,還要有一個清單(manifest)文件。包激活器類是一個實現org.osgi.framework.BundleActivator 的類,它定義了start (開始)和stop (結束)方法的邏輯。JES框架使用start 和stop方法來啟動和停止包。

在這個例子里,我們建立一個簡單的包(bundle),在它里面沒有什么服務,僅僅在啟動的時候顯示Hello ,在停止的時候顯示Bye 。請按以下步驟進行:

用Java編寫一個包激活類
用文本文件的格式建立一個清單(Manifest)文件。
建立一個JAR文件,里面包含編譯好的激活器類以及清單(Manifest)文件。
啟動 JES框架,并安裝、運行、停止包。
稍后,如果要建立復雜的包,你將編寫服務,用服務處理處理框架工作的事件,利用JES核心服務;你還要給包激活器這個類增加功能。

BundleContext(包環境)對象
現在,是介紹BundleContext(包環境)對象的時候了。這個對象讓包能夠與JES框架相互作用。

在框架啟動一個包的時候,就建立一個BundleContext 對象,并把這個對象傳遞給包激活器的start 方法。利用BundleContext 對象里的方法,包可以安裝自己、登記服務、取得其它已經安裝的包的信息、取得對服務的引用、獲取或釋放服務對象、獲取或翻譯包(Bundle)對象和文件(File)對象、占用框架發布的事件。BundleContext 對象的內容,在本教程的后面還會詳細介紹。

現在,你對BundleContext 對象需要了解這些事情:

只有 JES框架能夠創建BundleContext對象,包不能創建它。
在包被激活的時候,BundleContext對象被傳遞給start方法。
在包停止的時候,BundleContext還被傳遞給stop方法。
現在,我們來看看,如何編寫包的激活器類。

包的生命周期
每個包都有一個生命周期。在生命周期里,包可以被安裝、激活、更新、滅活,直至最后卸載。生命周期就是我們從比較高的級別上觀察這一連串事件時,事件經歷的時間 (如果你對細節有興趣,可以查閱OSGi 服務網關規范,發行版1.0)。

生命周期運行的步驟就象這樣:

1. 安裝包

JES框架讀取包的內容,給包分配一個包ID,并且持續地緩存包的位置和狀態。會建立一個專門的類引導,以訪問包的資源。

2. 激活包

框架檢測這個包所要求的Java類是否已經由其它的包導入了。如果別的包已經導入了相應的類,框架就調用包激活器類里的start 方法,登記包的服務。這時,包的服務開始運行。

在這一步,JES框架還要解決包之間的依賴關系,這樣可以保證:如果包B依賴包A,那么在啟動包B之前,包A已經存在。

3. 滅活包

框架調用包的stop 方法,取消服務的登記。服務停止運行。

4. 卸載包。

包從計算機上刪除。

如果在包的生命周期期間出現錯誤, JES框架就會拋出一個BundleException(包異常),這是一種特殊的異常類型,只在包的生命周期當中發生。BundleException is是OSGI規范定義的一個標準異常 (在org.osgi.framework里),JES實現了這個異常。

第一步:編寫包的激活器類
我們要建立的greeting1 這個包,它的激活器類Activator.java非常簡單,只定義了start 和stop 二個方法。

代碼示例1-1 一個簡單的包激活器類(greeting1/Activator.java)











package greeting1;

import org.osgi.framework.BundleActivator;

import org.osgi.framework.BundleContext;

import org.osgi.framework.BundleException;

public class Activator implements BundleActivator {

public void start(BundleContext context) throws BundleException {

System.out.println( "Hello" );

}

public void stop(BundleContext context) throws BundleException {

System.out.println( "Bye" );

}

}

激活器類Activator 保存在包greeting1 里①。它從org.osgi.framework逐個導入了BundleActivator, BundleContext, 和BundleException 這幾個類②,而沒有導入整個org.osgi.framework包,這樣降低了JES裝載包激活器時占用的內存數量。

激活器Activator 實現BundleActivator (包激活器)這個接口③,定義了它的start 和stop 方法,所有的包激活器類都要實現這些功能。在start 方法④的實現里,用它拋出BundleException(包異常),而沒有用BundleActivator里聲明的java.lang.Exception 作為拋出異常的方法,因為BundleException (java.lang.Exception的子類) 是JES框架用來拋出有關包的生命周期問題的異常類型。start 的這個實現,在包啟動的時候,會顯示Hello。

stop 方法⑤也拋出BundleException ,在包停止的時候顯示Bye 。

第二步:建立清單文件
在JES框架里安裝的每個包,都包含一個清單(Manifest)文件。清單文件是標準的文本文件,它描述了JAR文件里的內容。清單文件是結構化組織的文件,每個段都由一個頭組成,每個頭都有一個屬性。例如,參見greeting1/Manifest文件,它的內容是:

BundleActivator: greeting1.Activator

這個清單文件只有一個頭,它告訴JES框架,用哪個類作為包的激活器類。

頭給JES框架提供了“鉤子”,可以鉤上包里包含的文件和資源。通過這種途徑,框架就能知道,當包在生命周期中移動的時候,在包里的什么地方去找到資源(例如:包激活器)。

OSGi 規范義了能夠在清單文件里供JES包使用的頭(如表1-1所示)。但是表1-1 只顯示了頭的名稱。每個頭都有一套規定好的語法,必須用它的語法給它指定屬性。不過,學習這份教程,并不需要了解語法的細節內容。如果你對細節感興趣,可以參閱Java 嵌入服務器 2.0 開發人員指南。

表 1-1 在包的清單文件里可以使用的頭



說明

Bundle-Activator

包激活器

Bundle-ClassPath

包的類路徑

Bundle-ContactAddress

包的聯系人地址

Bundle-Description

包的描述

Bundle-Vendor
包的開發商
Bundle-DocURL

包的文檔URL

Bundle-Name

包名稱

Bundle-NativeCode

包的本機碼

Bundle-UpdateLocation

包的更新位置

Import-Service
導入服務
Bundle-Version

包的版本

Export-Package

導出包

Export-Service

導出服務

Import-Package

導入包

第三步:建立包的JAR文件
現在,我們有了一個包激活器類和一個清單文件,可以建立包了。建立包,可以使用gnumake (Solaris 平臺)或者nmake (Windows平臺)這兩個工具。

在Windows NT上的操作方法如下:

1.打開一個 MS-DOS 命令窗口

2.轉到greeting1目錄,就象這樣:

C:cd jes2.0docs utorialgreeting1

3. 建立 JAR 文件:

C: make

4. 檢測是否成功創建了JAR 文件:

C:cd jes2.0docs utorialuildundles

C:dir greeting1.jar

第四步:安裝、運行包
要啟動JES框架,單擊開始菜單,然后是程序>Java Embedded Server2.0>Java Embedded Server 2.0 Frame。
當JES框架啟動時,在MS-DOS窗口時,可以看到下面內容:

Java Embedded Server 2.0
Copyright 1998, 1999 and 2000 Sun Microsystems, Inc.
All rights reserved. Use is subject to license terms.
Type ‘h[elp]’ for a list of commands.
>
要打開JES工具包JES Tools Portal—單擊開始菜單,然后是程序>Java Embedded Server 2.0>Java Embdded Server 2.0 Tools Portal.
在Tools Portal里,單擊管理面板,打開JES的管理面板 JES Management Panel。
在管理面板里,單擊包(Bundles)標簽。
在要安裝的包文件(Bundle File to Install)里,找到greeting1 這個包(缺省是jes2.0/docs/tutorial/build/bundles/greeting1.jar),然后單擊安裝。
在右側面板的列表中看到greeting1 時,單擊開始。
檢查在右側面板中顯示的greeting1.jar的詳細內容.

總結

以上是生活随笔為你收集整理的JES服务程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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