2014-10-03 68 views
0

我們有一個大型的java應用程序。我的一位同事現在正在將此應用程序用作jboss上rest-api的庫。在這方面,我們必須在某些類中的某些方法中添加@JsonIgnore註釋。我必須在類的進口如下這個工作:可能會將包含註釋的jar文件從類路徑中排除?

import org.codehaus.jackson.annotate.JsonIgnore; 

這個註解包含在jar文件傑克遜核心ASL-1.9.13.jar 現在的問題是,我做的必須爲所有使用該程序的客戶提供jar文件作爲獨立應用程序?或者它可以被省略,因爲它只是anntations?這個問題的簡單答案是,我試圖將我的程序作爲一個獨立的程序來運行,在classpath中沒有jackson-core-asl-1.9.13.jar,它似乎工作正常。但是我真正想知道的是,如果它會一直這樣做的話,那麼正在運行的虛擬機是無與倫比的。如果Java更新導致應用程序失敗,無論是因爲方法上的註釋還是缺少的導入,結果都是災難性的,因爲我們有很多客戶在使用這個應用程序。那麼,類加載器如何解決import語句和註釋?

+0

您的類如何在不使用jar的情況下使用@JsonIgnore註釋?註釋是命名的接口。你正在測試的必須是一個紅鯡魚......如果你使用的是Maven,那麼這個應用程序可能會傳遞依賴。 – 2014-10-03 06:35:28

+0

構建應用程序的我的eclipse在其classpath中有jackson-core-asl-1.9.13.jar文件。問題是這些構建的文件是否也必須在沒有它的客戶啓動時才能訪問jackson-jar-file。 – runholen 2014-10-03 08:35:46

+0

你在使用Maven嗎?運行mvn依賴關係:樹會顯示類是否依賴於jar。如果你在應用程序類中有jackson註解,他們需要jackson在運行時纔可用...... [@SEE運行時類路徑與編譯時類路徑](http://techblog.bozho.net/?p=866) – 2014-10-03 09:08:50

回答

0

已經3年了,但我需要這個答案。

根據JSR-175和Oracle的錯誤數據庫,它應該可以找到。一番搜索後,我在一箇舊的JRE bug報告過這個聲明是:

按照JSR-175規範領導,未知註釋必須 無視getAnnotations。

這裏是鏈接:http://bugs.java.com/view_bug.do?bug_id=6322301

看樣子,你可以編譯一個類註釋,如果註釋不存在在運行時,它不會產生問題。