2016-02-02 34 views
0

我想創建一個帶有存根的項目的JAR文件,因爲我將通過外部Java客戶端訪問該服務。批處理文件如何檢測給定項目是否具有EJB3接口?

createEJBStubs在這方面

對於許多客戶端的情況下成爲我很好,在WebSphere®Application Server中 剛剛在實時(JIT)部署功能動態生成 RMI-IIOP存根類,是調用遠程EJB 3.x業務接口所必需的。但是,有些情況下JIT部署環境不可用於動態生成這些類。在這些情況下,必須使用createEJBStubs命令 來生成並將客戶端存根類文件嵌入到您的 客戶端應用程序中。如果您的客戶端環境是以下其中一個 ,請使用createEJBStubs命令:「Bare」Java Standard 版本(SE)客戶端,其中Java SE Java虛擬機(JVM)爲 客戶端環境。早於版本7的 版本的WebSphere Application Server容器(web 容器,EJB容器或應用程序客戶端容器),或者未應用3.0的Feature Pack for EJB 。非WebSphere Application Server環境。

我知道的問題之一時,執行此命令是一個可能會面臨 -

的createEJBStubs命令不支持與內包裝的一個2.x或1.x EJB模塊使用一個獨立的JAR文件。必須使用EJBDeploy工具,而不是來生成一個獨立的JAR文件中打包2.x版本的 或1.x的EJB模塊的存根 。如果createEJBStubs 指令是對一個 獨立的JAR文件中打包一個2.x或1.x EJB模塊運行,那麼該命令發出一個CNTR9241I消息, 不產生任何存根。

如何將腳本確定ARG提供(JAR)到腳本包含的類型EJB3的接口?

批處理文件可在%WAS_HOME%\ BIN \

回答

1

createEJBStubs使用相同的邏輯作爲EAR文件內的JAR分析時被使用。如果JAR文件包含ejb-jar.xml,則從那裏檢查版本。否則,如果JAR文件包含組件定義註釋(@Stateless,@Stateful,@MessageDriven),那麼它是一個EJB版本3 + JAR。否則,它不是一個EJB JAR文件。

(您使用的ejb-3.0標籤和websphere-8標籤,但在WebSphere Application Server V8實現EJB 3.1,所以@Singleton也將有資格作爲一個定義組件的註解。)

相關問題