我使用Eclipse Luna(版本4.4.2)和Glassfish 4使用JAX-RS構建REST Web應用程序。在Eclipse和Glassfish中使用JAX-RS時未找到類
下面的一段代碼,這只是一個很簡單的帖子以前的工作就好了REST API,已經開始拋出一個非常奇怪的錯誤:
@POST
public Response addToWatchlist(WatchlistEntry watchlistentry)
{
return Response.ok(watchlist_service.addToWatchlist(watchlistentry).toString()).build();
}
下面的錯誤是:
Warning: StandardWrapperValve[Jersey Web Application]: Servlet.service() for servlet Jersey Web Application threw exception
java.lang.ClassNotFoundException: javax.xml.parsers.ParserConfigurationException not found by org.eclipse.persistence.moxy
所有我已經能夠了解這是該網頁: https://java.net/jira/browse/JERSEY-2888
一位評論說,這已在EclipseLink 2.6.1和Jersey 2.19中修復。
我非常新的使用Maven和Eclipse - 假設以上是正確的,我怎麼得到我的Maven項目在Eclipse更新版球衣?另外我如何更新EclipseLink版本?他們的網站似乎只擁有2.6.0版本:http://www.eclipse.org/eclipselink/#download
我認爲這一切都可以通過Eclipse本身做什麼?
所有幫助表示感謝!
編輯1:好像EclipseLink的2.6.1已經發布了2015年10月15日,你可以在這裏看到:但是http://www.eclipse.org/eclipselink/releases/
,你可以在這裏看到,它似乎並不有被納入日食的「幫助 - >更新軟件」:http://download.eclipse.org/rt/eclipselink/updates/
這是非常惱人的。
我正在構建我的REST網站,並且沒有PUT或POST會因此錯誤而起作用。
有沒有人知道如何獲得2.6.1的工作?我正在使用Maven jersey-quickstart-webapp項目。
這個bug是一個皇室的痛苦在臉上。
編輯2:我有一個黑客今天的工作。當我檢查programmtically在像下面運行時正在使用什麼版本的EclipseLink的,它告訴我它是2.6.1版本,即使錯誤仍然存在:
Class<?> myClass = Class.forName("org.eclipse.persistence.Version");
Method myMethod = myClass.getMethod("getVersion");
String version = myMethod.invoke(null).toString();
System.out.println("version = " + version);
在一個相關的問題(How to find what version of EclipseLink my Eclipse Project is using?)我發現瞭如何找到glassfish用於eclipse的實際jar文件。它們位於glassfish/modules目錄中。 org.eclipse.persistence.core.jar文件裏面會有一個readme.html,它告訴你glassfish正在使用的eclipselink的版本。對我來說是2.6。
我手動更新org.eclipse.persistence.core.jar,並從Maven站點的最新版本的org.eclipse.persistence.moxy.jar文件。雖然這很不方便,但我不知道這樣做會產生什麼影響,它確實解決了這個問題。如果我找到正確的方法來做到這一點,我會在下面爲所有人和所有人寫一個答案。
我很確定更新遊戲我2.6.1(但不是2.6.2),當我嘗試它們時二月-2016。 –
是的 - 當我嘗試通過在我的項目中使用代碼來查看它使用的eclipselink的版本時,它說2.6.1。但是當我檢查glassfish/modules目錄下的實際org.eclipse.persistence.core.jar時,readme.html表示2.6。我仍然有錯誤發生! –
當然,Eclipse中的更新與Glassfish可能使用的版本不同。 –