2017-08-02 124 views
1

我正在使用JAR庫,其中包含@WebService帶註釋的類和其他Java EE註釋。問題是,Weblogic 12c會自動發現這些註釋並提供服務。這不是我的意圖,而是我想僅將JAR用作其他Java EE項目中的實用程序庫,並考慮此庫忽略來自Weblogic視角的所有Java EE相關配置。Java EE,如何忽略某些JAR或包中的註釋

基本上,所討論的庫是另一個Java EE項目,它被無情地捆綁在一個JAR中,但修改這個庫是沒有問題的,因此我需要忽略該庫中的所有Java EE東西。

那麼,如何通過自動發現和配置來指示weblogic忽略此特定JAR歸檔中的所有Java EE相關內容(或者某些包說明符下的所有類)呢?

我想到的一個解決方案是metadata-complete=trueweb.xml似乎忽略這些註釋。但是,我不確定它是否僅忽略JAR庫中的註釋或項目本身的註釋。

+0

你是如何構建你的應用程序? –

+0

這是具有多個EJB和Web模塊的典型EAR。 JAR庫駐留在lib目錄中。 –

+0

您使用什麼工具來構建罐子,Web模塊,ejb模塊和庫? –

回答

1

您可以閱讀關於metadata-completehere的解決方案。這個解決方案實際上是爲了改善大規模Java EE項目的部署性能而創建的。

您應該嘗試在庫項目的web.xml文件中設置metadata-complete=true,然後根據此更改創建一個新的jar。這違背了你重構圖書館代碼的意願,不過這是一個小改動,不會佔用你很多時間。

但是,我不確定它是否僅忽略JAR庫中的註釋或項目本身的註釋。

你說得對。如果您在項目的web.xlm文件中進行此更改,那麼您也會影響您的註釋。

+0

另一方面,庫包含實際使用的Web服務客戶端(用@ @ WebService @註解的接口和用@ WebServiceClient註解的方法)端口類型代理)。它是否也會禁用JAX-WS客戶端的功能而無需其他XML配置?核心問題是,有'@ WebService'實現類不應該在那裏,但不幸的是緊密耦合在一起。 –

+0

@TuomasToivonen這不是問題。這個配置是用部署描述符(xml文件)「替換」註釋的。功能保持不變。所以'@ WebServiceClient'註解提供的功能仍然存在。不同的是,這個功能是由部署描述符觸發的,而不是像上面提到的註釋。 –