問題タブ [spring-restcontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Cookie を使用して Spring rest アプリケーションでセッション レプリケーションを回避する
データベース、サーバーを使用したSpring 4 mvc
アプリケーションに取り組んでいます。基本的に、私は で使用されるスプリング レストを作成しています。mysql
tomcat
Angular JS
注:私は使っていませんSpring security
の場合のセッション複製を避けるためにclustered environment
、アプローチを使用しcookie
ています。ログイン時にone unique session id
( using java UUID
) を生成し、それを使用して を作成cookie
し、応答に Cookie を設定します。データ。
すべての残りの API を認証するために、Spring interceptor
すべての残りの API 呼び出しを傍受し、リクエストに Cookie があるかどうかを順番にチェックする を作成しました。存在する場合は、セッション ID 値を取得して使用し、データベースを作成します。有効かどうかを確認するために呼び出します。ログアウト時に、Cookie を削除しています。
上記で説明したように私がやっていることに基づいて、いくつか質問があります。
spring - Spring REST: コントローラー内で何らかの例外が発生した場合、常に「405 method not allowed」を取得する
コントローラーメソッド内でスローされた例外は500 internal server errorに変換されると予想していますが、コントローラーメソッド内でどのような例外が発生しても、クライアント側で405 method not allowed例外が発生します。
ノート:
デバッグ時に期待されるメソッドに移動するため、リクエストマッピングに問題はありません。しかし、コントローラーメソッドから例外がスローされると、クライアントで「405メソッドは許可されていません」と表示されます
注 2:
例外をキャッチしてHttpServerErrorException
、適切なエラー コードとメッセージをスローしようとしましたが、何も変わりませんでした。
編集:
私は春のセキュリティを使用していますが、ここに設定があります:
java - スプリング コントローラが認識できませんでした
次のコードを試して、tomcat7 でサンプル スプリング レスト アプリケーションを実行しました。正常に動作しますが、HelloController を認識できませんでした。デバッガーが hellocontroller に到達できませんでした。http://localhost:8080/Sample/welcomeは 404 エラーをスローします。
HelloController.java
web.xml
spring-security.xml
ここに私の mvc-dispatcher-servlet.xml があります
spring - Spring REST リクエスト マッピング
URL (長さとパラメーター) に関係なく、すべてのリクエストを特定のコントローラーにリダイレクトするように Spring を構成したいと考えています。RequestMapping アノテーションで URL パターン/正規表現をどのように指定すればよいですか。以下のコードを使用してみましたが、うまくいきません。この点でどんな助けでも大歓迎です。
spring-data - Spring Data Rest CrudRepository と ReadOnlyRepository
Spring Data Rest リポジトリの動作に異常があることに気付きました。私は2種類のエンティティを持っています。私のアプリケーションでは、読み取り専用エンティティ(州コード、国コード、郵便番号などの参照データ用)。エンドユーザーにこれらを変更させたくありません。そこで、次の ReadOnly リポジトリを実装しました。
現在、他のすべてのエンティティには CrudRepositories が関連付けられています。これらのエンティティは、州や郵便番号を参照する住所のような編集可能なエンティティであるためです。
これが例です。
リポジトリへのパススルー呼び出しを使用して、読み取り専用エンティティと編集可能エンティティの両方のコントローラーがあります。
State エンティティに対応する同一の Controller があります。
おかしなことに、StateController へのリクエストでは HATEOAS json レスポンスが返されますが、Address へのリクエストでは非 HATEOAS json レスポンスが返されます。何を与える?
java - Spring Bootで最大ファイルサイズの例外を処理するには?
REST アプリケーションの作成に Spring Boot v1.2.5 を使用しています。画像をアップロードしている間、プロパティが提供されている最大ファイルサイズをチェックしています:
application.properties で。この機能は、Spring Boot 自体によって提供されます。現在、チェックは正常に機能しています。問題は、どのように例外を処理し、ユーザーが理解できるメッセージをユーザーに返すかです。
更新 1 ----------
を使用して、MultipartException を処理するつもりの Controller 内にメソッドを作成し@ExceptionHandler
ました。うまくいかないようです。
これは私のコードです:
更新 2 ----------
@luboskrnacが指摘した後、私は解決策を思いつくことができました. ここを使用ResponseEntityExceptionHandler
して、この特定のケースを処理できます。を使用することもできたと思いますが、メソッドが を返す前者とは対照的に、を返すことができDefaultHandlerExceptionResolver
ます。私はそれを試していません。ResponseEntityExceptionHandler
ResponseEntity
ModelAndView
これは、次を処理するために使用している最終的なコードですMultipartException
。
REST Api の開発/文書化に Swagger を使用しています。サイズを超えるファイルをアップロードした際のレスポンスです。
ありがとう。
java - Spring Rest で Map パラメータを MockMVC でテストする方法
Spring Restには、このメソッドを公開するRestControllerがあります。
SpringのMockMVCを使用して、このメソッドをテストしたいと思います。
問題は、500 HTTP エラー コードが表示されることです。これは、コントローラーのパラメーターとしてMapを使用していることが原因であると確信しています (それを String に変更してみましたが、うまくいきました)。
質問は次のとおりです: RestController にMap in パラメータを設定し、MockMVCを使用して正しくテストするにはどうすればよいですか?
助けてくれてありがとう。