2014-01-07 22 views
0

我在運行weblogic服務器中的應用程序時遇到問題。我在兩種不同的包裝中使用不同的包裝。它會在運行時引發任何問題嗎?不同包裝下的兩個不同罐子中的相同類別。它會在應用程序執行中造成任何問題嗎?

注意:我沒有面臨任何構建問題。

對不起。如果我把你們都弄糊塗了。

先感謝

+0

我不相信會在運行時產生任何問題。 –

+0

但.. ..我已經從編碼中刪除了任何一個jar的用法,比我的代碼工作正常。例如 –

回答

1

如果完全分類的類別名稱(又名包+類名)是不同的,那麼有可能是一點問題都沒有。 Java通過包含軟件包(又名FQCN)的完整名稱來區分類。如果兩個罐子包含相同的FQCN,則它取決於類加載器的順序設置。當您在應用程序服務器中部署新耳朵(戰爭)時,您可以指定訂單。有關weblogic的更多信息:http://docs.oracle.com/cd/E11035_01/wls100/programming/classloading.html

+0

..我有兩個罐子,比如.. jar1-> com \ smk \ npo \ POUtil.class和jar2-> com \ smk \ POUtil.class。引用這些POUtil對象中的任何一個。我正在使用導入語句,如import com.smk.npo.POUtil或import com.smk.POUtil。 –

+0

沒有下面的文字。 –

+0

sry ..錯過了 –

0

只要它們位於不同的名稱空間中,就不會因爲在不同的annything中具有相同的類而產生問題,因爲它們的名稱是:package.class。如果我在哪裏,我會尋找運行時錯誤的不同原因。

我想問問是什麼讓你覺得這是問題?你有anny日誌或錯誤引用這些特定的類?

+0

我在Jar-B中使用這些罐子。在調用jar-B的類時,我在運行時沒有發現類沒有發現異常。 –

+0

你是如何打包你的應用程序的?您可能會錯過B.jar或將其放置在不正確的位置。 –

+0

它正在運行代碼(B.jar)..新近我打電話使用這些罐子的兩個webservice存根調用。因爲兩個wsdl來自相同的後端系統。它在創建存根(jar)時具有相同的類(在不同的pkg下)對象。 –

1

當使用不同的完全合格的類名時,不能有類加載的直接問題。但是,CDI可能會有問題。 請記住,Inject可以應用於許多資源,並且注入目標可以具有接口的類型,而不是具有實現類的類型。 當確定要實例化哪個對象時,應用程序服務器/ CDI容器可能會遇到問題,因爲突然之後可能會有更多的該接口實現在部署之後可用,例如,兩者都用相同或默認的限定符進行了註釋,但預期會出現異常,而不是隨機注入一個類或另一個類。

相關問題