[解決済み】JAX-RS - JSONとHTTPステータスコードを一緒に返すには?
2022-04-03 17:27:48
質問
RESTウェブアプリ(NetBeans 6.9、JAX-RS、TopLink Essentials)を書いていて、JSONを返そうとしています。 と HTTPステータスコードです。私は、HTTP GETメソッドがクライアントから呼び出されたときにJSONを返すコードを準備し、動作させています。基本的には
@Path("get/id")
@GET
@Produces("application/json")
public M_機械 getMachineToUpdate(@PathParam("id") String id) {
// some code to return JSON ...
return myJson;
}
しかし、私は また は、JSONデータとともにHTTPステータスコード(500、200、204など)を返したいと思っています。
を使おうとしたのですが
HttpServletResponse
:
response.sendError("error message", 500);
しかし、これによってブラウザはこれを"real" 500と勘違いしてしまい、出力されたウェブページは通常のHTTP 500エラーページになってしまいました。
HTTPステータスコードを返して、クライアントサイドのJavaScriptがそれに依存するロジックを処理できるようにしたいのです(たとえば、HTMLページにエラーコードとメッセージを表示する)。これは可能でしょうか、それともHTTPステータスコードはそのようなことに使うべきではないのでしょうか?
どのように解決するのですか?
以下はその例です。
@GET
@Path("retrieve/{uuid}")
public Response retrieveSomething(@PathParam("uuid") String uuid) {
if(uuid == null || uuid.trim().length() == 0) {
return Response.serverError().entity("UUID cannot be blank").build();
}
Entity entity = service.getById(uuid);
if(entity == null) {
return Response.status(Response.Status.NOT_FOUND).entity("Entity not found for UUID: " + uuid).build();
}
String json = //convert entity to json
return Response.ok(json, MediaType.APPLICATION_JSON).build();
}
を見てみましょう。 レスポンス クラスがあります。
複数のコンテントタイプを渡す場合は特に、常にコンテントタイプを指定する必要があることに注意してください。
@Produces("application/json")
関連
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] REST APIサービスが検証に失敗した場合に返すべき適切なHTTPステータスコードは何ですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?