2011-06-03 17 views
0

在我的應用程序中,發送和接收了相關的消息結構/格式。當我必須發送消息時,消息應該以特定格式創建。我已經解析了有關特定消息的消息。該消息什麼都沒有,但byte array運行時從配置文件/數據庫/屬性文件解析並創建消息

解析我使用Preon lib的消息。

我具有以下問題:

  1. 編程方式我要創建每個字段的字節數組。
  2. 當消息格式發生變化時,我必須更改代碼。

如何構建運行時消息結構並解析消息結構。

所述的消息結構如下所示

Message1{ 

int field_1 
char[2] field_2 
long filed_3 
double filed_4 
bit field_5 
short field_6 
char field_7 

} 


Message2{ 

    Message1 msg 
    short field_8 
    char field_9 
} 
  1. 消息結構將改變的任何時間。

  2. 系統中有超過1000種類型的消息。

所以我正在尋找解決方案在Java中,它將創建消息和從給定的結構運行時解析。

如果您有示例代碼,請提供代碼sniipet。

+1

如果你的消息結構發生了變化,但你的代碼沒有,你打算如何處理這個變化? – 2011-06-03 09:44:59

+0

是的,在配置文件或屬性的某個地方,我會改變。 – Kamahire 2011-06-03 09:47:20

+0

如何更改配置文件允許您存儲以前無法存儲的數據? – 2011-06-03 09:48:49

回答

1

我會使用一個OSGi容器(karaf/iPOJO),它允許我在應用程序運行時更改代碼。這意味着您可以添加字段,在系統中更改其類型和大小,而無需關閉應用程序。

注意:如果您添加一個字段或使字段較大但代碼不支持,您是否會丟失信息?

+0

如果我錯了,請糾正我,OSGi解決應用程序中使用的不同版本的jar。它通常用於解決vesrion。我很抱歉,但我無法理解,我該如何使用OSGi。你能給我示例代碼嗎? – Kamahire 2011-06-03 09:52:12

+0

使用OSGi容器,您可以加載庫的新版本並刪除舊版本,即在不停止應用程序的情況下更新消息處理的所有代碼。 – 2011-06-03 10:16:32