2015-10-14 10 views
5

Eclipse Luna(バージョン4.4.2)とGlassfish 4を使用して、JAX-RSを使用してREST Webアプリケーションを構築しています。以前にうまく働いていたREST APIにちょうど非常に単純なポストである次のコードは、非常に奇妙なエラーをスローし始めているEclipseとGlassfishでJAX-RSを使用しているときにクラスが見つかりません

@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 

私はこれを知ることができたすべては、このWebページである: https://java.net/jira/browse/JERSEY-2888

コメントの一つがこれを言いますEclipseLink 2.6.1およびJersey 2.19で修正されました。

私はMAVENとeclipseを使い慣れています。上記が正しいと仮定して、Jerseyバージョンを更新するためにEclipseでMavenプロジェクトを取得するにはどうすればよいですか?また、EclipseLinkのバージョンを更新するにはどうすればよいですか?彼らのサイトはバージョン2.6.0しか利用できないようです:http://www.eclipse.org/eclipselink/#download

私はすべてこれが日食それ自体で行うことができると仮定しますか?

すべてのお役に立ちました!

EDIT 1:のEclipseLink 2.6.1は、10月15日2015年にリリースされたようにあなたがここに見ることができるようにそれは、そうです:http://www.eclipse.org/eclipselink/releases/

しかし、あなたがここに見ることができるように、持っていないようです"ヘルプ - >アップデートソフトウェア"用のEclipseに組み込まれました:http://download.eclipse.org/rt/eclipselink/updates/

これは非常に迷惑です。

私は自分のRESTウェブサイトを構築していますが、このエラーのためにPUTもPOSTも動作しません。

誰かが2.6.1の作業方法を知っていますか?私はMaven jersey-quickstart-webappプロジェクトを使用しています。

このバグは、顔の王様の痛みです。

EDIT 2:今日はハックがあります。私は以下のように実行時に使用されているのEclipseLinkのバージョンprogrammticallyチェックインすると、それはバグが残っているにもかかわらず、バージョン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ファイルの中には、glassfishが使用しているeclipselinkのバージョンを示すreadme.htmlがあります。私にとっては2.6だった。

手動でorg.eclipse.persistence.core.jarファイルとorg.eclipse.persistence.moxy.jarファイルをmavenサイトの最新バージョンで更新しました。これは非常にハッキーですが、これを行うことによって何が影響を受けるのか分かりませんが、この問題を乗り越えます。私がこれを行う正しい方法を見つけたら、私は以下の答えを、すべてと雑貨のために書くつもりです。

+0

私が更新プログラム2.6.1 2016年2月 –

+0

えええええええええええええええええええええええええええええええたえええええええええええええええええええええええええええええええええとってって、しかし、glassfish/modulesディレクトリにある実際のorg.eclipse.persistence.core.jarを調べると、readme.htmlには2.6と書かれています。私はまだエラーが発生している! –

+1

もちろん、EclipseのアップデートはGlassfishが使用しているバージョンと同じではありません。 –

答えて

1

問題は、glassfishが使用していたeclipselinkのバージョンを更新することで解決しました。 Eclipseはバージョンを更新しましたが、glassfishはそれ自身の更新が必要です。 glassfish/modulesディレクトリに置く必要があるjarファイルのリストは、次のように答えています:How to change EclipseLink in GlashFish 4.0?

2

ジャーナルJIRAとeclipseのリンクのWebサイトは、Eclipseリンク2.6.1がまだ開発中です(まだリリースされていないようです)。それがダウンロードできない理由です。

mavenでJerseyの更新版を使用するには、pom.xmlの新しいバージョン2.19に応じて与える必要があります。

しかし、Eclipseリンク2.6.1はまだリリースされていないので、新しいバージョンのJerseyを使用してもほとんど役に立たないかもしれません。しかし、それでもあなたはそれを試すことができます。あなたのpom.xmlファイルでは、ジャージのバージョンを更新し、次の依存関係を見つけ、バージョンタグの値を更新する

+0

私はジャージーバージョンを更新しましたが、それは何の違いもありません。 eclipselinkの新しいバージョンが出てきたら、どうすれば更新できますか?日食は自動的に行うのですか? –

+0

私は、自動更新がそこにあるのか疑いがあります。このリンクhttp://download.eclipse.org/rt/eclipselink/updates/を使用して、Eclipse内の「マーケットプレイス」からアップデートを確認することができます。現在2.6.0を最新版として公開しています。 –

2

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>2.22.1</version> 
</dependency> 
2
あなたにあなたのプロジェクトを展開しているサーバー

?私はGlassfish 4.1.1(そのエラーを含む)には多くの問題がありました。私は4.1にダウングレードし、すべて正常に動作します。これは、4.1.1の最新モジュール(サーバーに組み込まれたjarファイル)に問題がある可能性があります。私はそれが助けて欲しい最高の解決策ではなく、私にとっては、モジュールが故障していることを見つけるまで、一時的な回避策でした。

+0

こんにちはBisonfan95 - 私はかなりglassfishに新しいです - どのように私はバージョンをダウングレードするために行く - これについて行く方法を私に言ってオンラインで何かを見つけることができないようです... Tom –

+0

ちょうど古い配布をダウンロードしてください。私はnetbeansを使用しています。私はプロジェクトを設定するときに、ウィザードから任意のディストリビューションをダウンロードできます。 Eclipseにオプションがない場合は、公式のglassfishサイトに行き、古いディストリビューションを探してください。乾杯:D – Bisonfan95

+0

ああ、明らかにプロジェクトを設定して、あなたがダウンロードした新しい古いGlassfishに配備するようにしてください。 – Bisonfan95

関連する問題