2011-06-01 80 views
10

我有一個Java Web Services項目,它是在NetBeans的較早版本中創建的,並且我在幾個月內沒有訪問過它,所以我的路徑和已安裝的庫是不同的。如何在NetBeans中引用庫?

當我嘗試打開該項目,我得到一個「解決引用問題」的對話框,並且兩個參考的問題列出:

"metro" library could not be found 
"JAX-WS-ENDORSED" library could not be found 

我有JDK 6 Update 25 with NetBeans 7.0全新安裝,並且正在運行Windows 7。

我可以採取哪些措施來解決這個問題?我甚至不知道從哪裏開始,因爲我迄今採取的每種方法都沒有讓我獲得任何地方。

注意: JAX-WS-ENDORSED沒有出現在我的庫列表中,所以我無法刪除它。隱藏的東西引用它。我如何找到這個?

+0

類似的問題在這裏。 JAX-WS-ENDORSED出現在我的庫列表中,但添加它並沒有幫助... – 2013-03-11 14:35:13

回答

11

我剛剛遇到此問題,並從http://netbeans.org/bugzilla/show_bug.cgi?id=187145找到一些幫助。顯然,Netbeans將在創建新的Web服務時創建JAX-WS-ENDORSED庫。所以去文件>新文件,選擇Web服務> Web服務客戶端,並填寫虛擬值(這可以在一次性項目中完成)。然後,該客戶端可以被刪除,NetBeans將創建與下面的類路徑條目庫:

java/modules/ext/jaxws22/api/jaxws-api.jar 
ide/modules/ext/jaxb/api/jaxb-api.jar 

這是相對於你的Netbeans在OS X上安裝目錄(將位於目錄/內的資源/ Netbeans的。應用程序)。或者,您可以使用上面的條目手動創建庫。

這隻需要做一次,因爲該庫將被添加到Netbeans全局庫列表中。

2

Netbeans維護一組庫,它們只是一個管理相關jar文件組的簡便方法。由clickong開始工具>。你會看到庫管理器窗口。

Library Manager

你會看到添加自己的圖書館,如果你已經下載jar文件的選項。如果你沒有看到你正在尋找的圖書館,你可以下載它們並添加你自己。一旦在Netbeans中存在庫,您可以訪問Project Explorer窗口並右鍵單擊項目的選項卡。選擇添加庫,您將有機會添加添加到庫管理器中的庫。

+1

首先,我該如何知道在這裏使用哪些庫?我只能猜測「metro」和「JAX-WS-ENDORSED」是指什麼。我對「metro」沒有任何想法,但我認爲「JAX-WS-ENDORSED」意味着我應該使用JAX-WS 2.2。我嘗試添加JAX-WS 2.2作爲參考,並且仍然得到相同的錯誤。 – 2011-06-01 21:21:39

+0

您可能必須從項目中刪除JAX-WS-ENDORSED庫。在Project Explorer中的庫列表下,您應該看到它列出。右鍵點擊並刪除。至於地鐵,我不能確定,但​​有這個地鐵的引用:http://metro.java.net/這是一個Web服務的圖書館,所以我猜這是正確的。下載它,添加一個庫,然後將庫添加到您的項目中。 – 2011-06-01 21:30:21

+0

好吧,我得到了地鐵庫的引用,右鍵單擊庫並選擇屬性,我能夠創建「創建」庫,並添加了地鐵的jar文件,這似乎工作。但是,我無法在任何地方找到JAX-WS-ENDORSED。我在庫和屬性對話框中搜索,沒有看到它。任何其他可能會使它認爲需要此參考的地方?我知道它需要的jar文件的位置,但我找不到任何地方的「JAX-WS-ENDORSED」引用,所以我無法刪除它或更正它。 – 2011-06-01 22:00:12

0

你可能想要右鍵點擊你的項目,去屬性 - >庫。

刪除JAX-WS認可的庫,並嘗試使用JAX-WS 2.2

同時刪除地鐵,然後嘗試在麥德龍2.0

這可能解決您的問題。在你的web服務引用

你也可以右鍵單擊並選擇

編輯Web服務屬性

然後wsimport的選項選項卡上看到,如果xendorsed設置爲true。

UPDATE

您可能需要關閉NetBeans和然後再次打開它,它可能工作。我遇到類似的問題,我只是這樣做,它的工作。

唯一的區別是,我也添加了JAXB 2.2庫,但這是因爲我試圖解決編譯錯誤。

2

如果仍然需要,那麼在netbeans 7中打開一個netbeans 6.9項目時,我也會遇到同樣的情況。使用庫窗口無法解決'jaxb-endorsed'(在我的例子中是jaxb而不是jaxws)引用。

我在nbproject/project.properties文件中找到了endorsed.classpath屬性。 我仍然不確定它的目的是什麼,但是在這個屬性中我發現了對jaxb-endorsed.classpath的錯誤引用,所以我刪除了,關閉netbeans並再次打開,並且引用問題已經消失。

我已經將Jaxb 2.2庫添加到了我的項目中,所以它對我對project.properties所做的修改工作良好。

我希望它有幫助。

1

我有一個類似的問題:不要刪除JAX-WS-ENDORSED - 提醒我downvote。我不得不去導入項目>解決參考 問題對話框>從那裏刪除指向舊的NB文件夾的引用 - 圖片:enter image description here

然後創建威廉斯科特建議的一次性web服務,然後添加新創建的罐子:enter image description here

0

我有同樣的問題,並修復它通過安裝在NetBeans肥皂和Web服務和Web服務resful插件

4

最好的解決方法是編輯project.properties文件並替換下面一塊碼。

原始屬性:endorsed.classpath = \ $ {libs.JAX-WS-ENDORSED.classpath}

替換爲:endorsed.classpath = \ $ {lib.JAX-WS 2.2.classpath}

在早期版本的Netbeans中,libs位置有JAX-WS-ENDORSED庫。在lib文件夾

新版本有JAX-WS 2.2庫的Netbeans的

** 一切順利 **

+0

這一個爲我工作:) – 2015-11-11 19:21:27

+0

爲我工作 – elrado 2016-06-13 11:43:05

0

我解決這個問題:

  1. 反安裝NetBeans的。
  2. 刪除HOME/.netbeans和HOME /。NBI
  3. 然後安裝NetBeans再次
+0

不起作用。事實上,這是一個很好的方式來完成一個完美的安裝,並使它開始與JAX錯誤失敗。 – 2014-05-22 15:25:01

0

舊線,不同的和有效的解決方案。我剛搬來的一些項目,從一個系統到另一個和得到這個錯誤。使用NetBeans v7.3 +,轉至工具>插件,可用插件,然後搜索「SOAP」。你應該看到「SOAP Web服務」。加載這個庫時,你會得到JAX-WS-ENDORSED庫。重新啓動NetBeans,您應該能夠獲得Clean Build。

加載此軟件包會引入許多其他庫。在重新啓動IDE時,您可能會收到其他軟件包現在具有可用更新的通知。