當目標 Java 2 平台企業版 (J2EE) 專案中至少有一個 Bean 和轉換中的 UML 類別同名與同名稱空間時, 便可能發生重新套用情況。重新套用情況是指現有 Enterprise Bean 的類型, 和 UML 模型中之對應類別所要產生之 Enterprise Bean 的類型相符。
當所要產生之 Enterprise Bean 的類型,和現有 Enterprise Bean 的類型不相容時, 即會出現衝突情況。在衝突情況下,UML 至 EJB 轉換不會更新現有的 Bean, 且不會產生新 Enterprise Bean。
下表列出轉換對於 CMP 2.x Entity Bean 可能出現的重新套用情況, 預期做出的反應:
要產生的 Enterprise Bean |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
CMP 2.x |
CMP 2.x |
重新套用 |
更新 CMP 欄位與方法 |
CMP 2.x |
CMP 1.1 |
重新套用 |
更新 CMP 欄位與方法(如同一般的 CMP 1.1 至 CMP 1.1 重新套用情況) |
CMP 2.x |
BMP |
重新套用 |
更新 BMP 欄位與方法(如同一般的 BMP 至 BMP 重新套用情況) |
CMP 2.x |
Session(stateful 或 stateless) |
衝突 |
讓 Session Bean 維持不接觸 |
CMP 2.x |
訊息驅動 |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
下表列出轉換對於 CMP 1.1 Entity Bean 可能出現的重新套用情況, 預期做出的反應:
要產生的 Enterprise Bean |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
CMP 1.1 |
CMP 2.x |
重新套用 |
更新 CMP 欄位與方法(如同一般的 CMP 2.x 至 CMP 2.x 重新套用情況) |
CMP 1.1 |
CMP 1.1 |
重新套用 |
更新 CMP 欄位與方法 |
CMP 1.1 |
BMP |
重新套用 |
更新 BMP 欄位、方法與關聯(如同一般的 BMP 至 BMP 重新套用情況) |
CMP 1.1 |
Session(stateful 或 stateless) |
衝突 |
讓 Session Bean 維持不接觸 |
CMP 1.1 |
訊息驅動 |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
下表列出轉換對於 BMP Entity Bean 可能出現的重新套用情況, 預期做出的反應:
要產生的 Enterprise Bean |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
BMP |
CMP 2.x |
重新套用 |
更新 CMP 欄位與方法(如同一般的 CMP 2.x 至 CMP 2.x 重新套用情況) |
BMP |
CMP 1.1 |
重新套用 |
更新 CMP 欄位與方法(如同一般的 CMP 1.1 至 CMP 1.1 重新套用情況) |
BMP |
BMP |
重新套用 |
更新 BMP 欄位與方法 |
BMP |
Session(stateful 或 stateless) |
衝突 |
讓 Session Bean 維持不接觸 |
BMP |
訊息驅動 |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
下表列出轉換對於 Session Bean 可能出現的重新套用情況, 預期做出的反應:
要產生的 Enterprise Bean |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
Session(stateful 或 stateless) |
CMP 2.x |
衝突 |
讓 CMP 2.x Bean 維持不接觸 |
Session(stateful 或 stateless) |
CMP 1.1 |
衝突 |
讓 CMP 1.1 Bean 維持不接觸 |
Session(stateful 或 stateless) |
BMP |
衝突 |
讓 BMP Bean 維持不接觸 |
Session(stateful) |
Session (僅 stateful) |
重新套用 |
更新 Session Bean 的欄位與方法 |
Session (stateful) |
Session (僅 stateless) |
衝突 |
讓 Stateless Session Bean 維持不接觸 |
Session (stateless) |
Session (僅 stateful) |
衝突 |
讓 Stateful Session Bean 維持不接觸 |
Session (stateless) |
Session (僅 stateless) |
重新套用 |
更新 Session Bean 的欄位與方法 |
Session(stateful 或 stateless) |
訊息驅動 |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
下表列出轉換對於訊息驅動 Bean 可能出現的重新套用情況, 預期做出的反應:
要產生的 Enterprise Bean |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
訊息驅動 |
CMP 2.x |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
訊息驅動 |
CMP 1.1 |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
訊息驅動 |
BMP |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
訊息驅動 |
Session(stateful 或 stateless) |
衝突 |
讓訊息驅動 Bean 維持不接觸 |
訊息驅動 |
訊息驅動 |
重新套用 |
更新訊息驅動 Bean 的欄位與方法 |
下表列出轉換對於未標示之 UML 類別可能出現的重新套用情況, 預期做出的反應:
UML 類別中的造型 |
現有的 Enterprise Bean |
預期的情況 |
轉換的反應 |
未標示 |
CMP 2.x |
重新套用 |
更新其現有遠端介面中之 CMP 2.x Entity Bean 的欄位與方法 |
未標示 |
CMP 1.1 |
重新套用 |
更新其現有遠端介面中之 CMP 1.1 Entity Bean 的欄位與方法 |
未標示 |
BMP |
重新套用 |
更新其現有遠端介面中之 BMP Entity Bean 的欄位與方法 |
未標示 |
Session(stateful 或 stateless) |
重新套用 |
更新其現有遠端介面中之 Session 的欄位與方法 |
未標示 |
訊息驅動 |
重新套用 |
產生典型的 Java 類別 |
在未標示之 UML 類別的重新套用情況中,當對現有 Enterprise Bean 的遠端介面進行程式碼更新時, 會在 EJB 專案中造成建置錯誤。會發生這些建置錯誤是因遠端介面中之已更新的程式碼, 不符合遠端介面的 EJB 規格。如果您打算改寫整個 Enterprise Bean, 您必須先移除現有的 Enterprise Bean,然後再執行 EJB 轉換。
本節詳述轉換對重新套用情況的反應, 並進一步說明在重新套用後,預期轉換會有何反應。
如果 CMP 2.x Entity Bean 發生重新套用情況,可能會進行如下的修改:
不應進行下列修正:
如果 CMP 1.1 Entity Bean 發生重新套用情況,可能會進行如下的修改:
不應進行下列修正:
如果 BMP Entity Bean 發生重新套用情況,可能會進行如下的修改:
不應進行下列修正:
如果 Session Bean 發生重新套用情況,可能會進行如下的修改:
不應進行下列修正:
如果訊息驅動 Bean 發生重新套用情況,可能會進行如下的修改:
不應進行下列修正:
使用條款 | 意見
(C) Copyright IBM Corporation 2004. All Rights Reserved.