ホームページ > Java > &#&チュートリアル > Jersey RESTful WebサービスにファイルとJSONデータを同時にアップロードするにはどうすればよいですか?

Jersey RESTful WebサービスにファイルとJSONデータを同時にアップロードするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-06 14:44:11
オリジナル
719 人が閲覧しました

How to Upload a File and JSON Data Simultaneously in a Jersey RESTful Web Service?

Jersey RESTful Web サービス内の他のオブジェクトとともにファイルをアップロードする

問題:

Jersey を使用して単一の REST API 呼び出しで画像と従業員データを含む従業員レコードを作成したいと考えていますが、現在の実装ではChrome Postman のエラー。

答え:

ファイルのアップロードと JSON データの同時送信を有効にするには、マルチパート リクエストに JSON データを含める必要があります。コード スニペットの修正バージョンを次に示します。

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") Employee emp) {

//..... business login

}
ログイン後にコピー

主な変更点は、マルチパート リクエストに従業員データを含めるために @FormDataParam("emp") を追加したことです。

追加メモ:

  • 「パラメーターのインジェクション ソースが見つかりません」というエラーが発生した場合public javax.ws.rs.core.Response" タイプの新しいコードを使用するときは、マルチパート リクエストを処理するための適切な Jersey 構成がサーバー コード内に配置されていることを確認してください。
  • ブラウザのような一部の REST クライアントデフォルトの FormData 機能は、個々のマルチパート パーツの Content-Type の設定をサポートしていない場合があります。これに対処するには、サーバー側でデータを逆シリアル化する前に、JSON 部分の Content-Type を明示的に設定します:
@POST
@Path("upload2")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFileAndJSON(@FormDataParam("emp") FormDataBodyPart jsonPart,
                                  @FormDataParam("file") FormDataBodyPart bodyPart) { 
     jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
     Employee emp = jsonPart.getValueAs(Employee.class);
}
ログイン後にコピー

以上がJersey RESTful WebサービスにファイルとJSONデータを同時にアップロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート