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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Rhapsody集成引擎之RDK篇(二)

發布時間:2024/3/26 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rhapsody集成引擎之RDK篇(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Rhapsody集成引擎之RDK篇(二)

聲明:轉至Rhapsody集成引擎之RDK篇(二)

上篇介紹如何安裝、配置RDK開發環境,本篇著重介紹使用RDK開發自定義過濾器,內容涉及:

1)如何引用外部jar包

2)如何捕獲并處理異常

3)如何自定義過濾器圖標

4)如何發布自定義過濾器至Rhapsody正式環境

如何創建Rhapsody Project

1、以管理員身份打開Eclipse,選擇File->New->Plug-inProject,填寫項目名稱,如下圖所示:

Plug-in Project

2、選擇“Next”打開“Content”窗口,請注意不要勾選“Generatean Activator”復選框,如下圖所示:

?Content設置

3、選擇“Next”打開“Templates”窗口,選擇使用“Rhapsody Project”,如下圖所示:

RhapsodyProject

4、選擇“Next”打開“Package Name”包名設置窗口,如下圖所示:

Package Name

5、包名設置完畢后,點擊“Finish”完成Rhapsody Project的創建,如下圖所示:

Rhapsody Project

如何創建自定義Filter

如上圖所示,Rhapsody Project自帶了3個過濾器代碼示例,分別是IDFilter、MessageParsingFilter和RelaceBody,我們可以直接使用進行編碼修改即可,我們以修改IDFilter為例,步驟如下:

1、對IDFilter重命名,在Eclipse的Project Explorer中右擊IDFilter->Refactor->Rename,將其更名為UpperCase

2、修改doConfigure()方法和doProcessMessage()方法

  • doConfigure:過濾器配置相關

  • doProcessMessage():過濾器功能相關

詳細說明將留至下篇文章,敬請期待。

3、修改Activator代碼,將IDFilter更改為UpperCase,如下圖所示:

如何引用外部jar包

作為開發人員,我們在實現部分自定義過濾器功能時不可避免的需要引用外部jar包,傳統方式是將jar包拷貝到工程lib文件夾,因此導出項目時會包含引用jar包。

Rhapsody IDE在開發過程中每使用一次過濾器都會包含若干外部jar包,這就導致保存*.rlc工程文件時體量激增,這里給大家推薦第二種方法,具體步驟如下:

1、將引用到的外部jar包拷貝到Rhapsody Engine/plugins中

2、同時拷貝jar包到Rhapsody Engine6\rhapsody\data\modules中

3、打開META-INF/MANIFEST.MF,選擇“Dependencies”選項卡,將外部jar包添加進去

4、此時,開發者可以在代碼中對jar包進行引用了

如何捕獲并處理異常

在RDK開發過程中,對異常的捕獲處理是必要的,其中拋出異常的方式有兩種,一種是常規的ThrowException,一種是message.addError()方法,二者皆可將異常拋出到Rhapsody的ErrorQueue中,且都可以被路由上的Route Error Handler

主動捕獲到,示例代碼如下:

public Message[] doProcessMessage(final Message[] messages)throws MessageException, FilterProcessingException,InterruptedException { for (inti = 0; i < messages.length; i++) { try { final String body = Messages.asString(messages[i]); Messages.setBody(messages[i], body.toUpperCase()); } catch (UnsupportedEncodingException e) { messages[i].addError("Message encoding type '" + messages[i].getBodyEncoding() + "' not supported."); } catch (Exception e) { thrownew MessageException("Error while reading message", e); } } returnmessages;}

如何自定義過濾器圖標

過濾器圖標分為兩個規格,一個是32*32像素大小的24位bmp圖片,用于在路由中顯示過濾器,另一個是16*16像素大小,用于在Filter ToolBox中顯示,開發者可自行設置圖標。詳細分為兩個步驟:

1、將圖標圖片放至Rhapsody Project/src下,如下圖所示:

2、修改Activator代碼,如下表所示:

this.registrations.add(context.registerService(fr, new FilterRegistration("com.lyniate.rhapsody.module.cryptos.AES", "AES","Crypto", AES.class, "/AES-32.bmp", "/AES-16.bmp"), null));

? ? ? ? ? ? 實際效果如下:

路由中過濾器圖標

Filter Toolbox過濾器圖標

如何自定義過濾器至Rhapsody正式環境

發布自定義過濾器步驟如下:

1、右擊項目->Export->Plug-inDevelopment->Deployable plug-ins and fragments

2、選擇保存路徑后,點擊“Finish”完成項目導出

3、復制導出的jar包,拷貝至Rhapsody Engine ?6\rhapsody\data\modules下。請注意:需同時將jar包引用到的外部jar包一并拷貝進來。

4、啟動Rhapsody引擎,使用Rhapsody IDE進行校驗;如果IDE中沒有發現自定義過濾器,則打開logs/log.txt,搜索自己開發的過濾器關鍵字,看看是否有其他異常。

總結

以上是生活随笔為你收集整理的Rhapsody集成引擎之RDK篇(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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