Springを使用してRESTアプリケーションにマップされたあいまいなハンドラーメソッドを処理する

ミケザン

私は以下のようにいくつかのコードを使おうとしました:

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Brand getBrand(@PathVariable Integer id) {
    return brandService.getOne(id);
}

@RequestMapping(value = "/{name}", method = RequestMethod.GET)
public List<Brand> getBrand(@PathVariable String name) {
    return brandService.getSome(name);
}

しかし、私はこのようなエラーが発生しました、どうすればよいですか?

java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/api/brand/1': {public java.util.List com.zangland.controller.BrandController.getBrand(java.lang.String), public com.zangland.entity.Brand com.zangland.controller.BrandController.getBrand(java.lang.Integer)}
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:375) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
カシオモリン

Springは、マッピングがあいまいなため、リクエストGET http://localhost:8080/api/brand/1がによって処理されるのgetBrand(Integer)か、によって処理されるの区別できませんgetBrand(String)

getBrand(String)メソッドのクエリパラメータを使用してみてくださいクエリを実行しているので、より適切なようです。

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Brand getBrand(@PathVariable Integer id) {
    return brandService.getOne(id);
}

@RequestMapping(method = RequestMethod.GET)
public List<Brand> getBrand(@RequestParam(value="name") String name) {
    return brandService.getSome(name);
}

上記のアプローチを使用する:

  • のようなリクエストGET http://localhost:8080/api/brand/1はによって処理されgetBrand(Integer)ます。
  • のようなリクエストGET http://localhost:8080/api/brand?name=nikeはによって処理されgetBrand(String)ます。

ヒント:一般的な方法として、リソースのコレクションには複数形の名詞を使用することをお勧めします。したがって、の代わりに/brand、を使用します/brands

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パピーリナックス(アプリソースが提供されていない場所)で.debアプリケーションを実行するためのメソッドまたは互換性ライブラリはありますか?

分類Dev

URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

分類Dev

NestedServletExceptionの取得:リクエストの処理に失敗しました。ネストされた例外はjava.lang.IllegalStateExceptionです:マップされたあいまいなハンドラーメソッド

分類Dev

Windows 7で、コマンドライン(コンソール)アプリケーションへのショートカットを作成し、コマンドウィンドウを開いたままにする方法はありますか?

分類Dev

受信した通知のメソッドハンドラーがアプリケーションをクラッシュさせます。:(

分類Dev

起動後にSpringブートアプリケーションが失敗する-存在しないメソッドを呼び出そうとしました。次の場所から試行されました

分類Dev

パラメータに応じてDelphiハイブリッド(コンソールまたはGUI)アプリケーションを作成する方法は?

分類Dev

Ubuntu 16.04 GLib-GIO-メッセージ:「メモリ」GSettingsバックエンドを使用しています。設定が保存されたり、他のアプリケーションと共有されたりすることはありません

分類Dev

Spring MVCアプリケーションを構成して、アプリケーションを実行するたびにコントローラーまたは任意のメソッドが自動的に呼び出されるようにすることはできますか?

分類Dev

Spring MVCアプリケーションを構成して、アプリケーションを実行するたびにコントローラーまたは任意のメソッドが自動的に呼び出されるようにすることはできますか?

分類Dev

このSpringBootアプリケーションでマルチパートアップロードを処理できないのはなぜですか?「一致するエディターまたは変換戦略が見つかりません」というメッセージが表示されます

分類Dev

このSpringBootアプリケーションでマルチパートアップロードを処理できないのはなぜですか?「一致するエディターまたは変換戦略が見つかりません」というメッセージが表示されます

分類Dev

他のスレッドが処理している間、メインスレッド(Qtアプリケーション)の応答性を維持する(POSIX)

分類Dev

残念ながら、フラグメントビューでブックマークされたアイテムをクリックするとアプリケーションが停止しました。タイトルとリンクを保存するためにjsonを使用しています。

分類Dev

チャネルを使用するためだけに調整されたPhoenixアプリケーションは、複数のマシンでどのように拡張できますか?HAProxyを使用していますか?すべてのノードにメッセージをブロードキャストする方法は?

分類Dev

アプリがバックグラウンドにあるが一時停止されていないときにプッシュ通知を処理する方法

分類Dev

画像を処理するマルチスレッドアプリケーションを作成していますが、シーケンシャルバージョンの方が高速です。なぜですか?

分類Dev

ZeroMQソケットをRatchetWebソケットライブラリにバインドして、PHPアプリケーション用のリアルタイムアプリケーションを作成するにはどうすればよいですか?

分類Dev

iOSデバイスがロックされているときまたは別のアプリケーションで再生されているバックグラウンドオーディオを処理するにはどうすればよいですか?

分類Dev

アプリケーションが複数のマシンで実行されているときにPlayFrameworkでキャッシュを処理する

分類Dev

Spring Data JPA-「プロキシを初期化できませんでした-セッションなし」-メソッドがトランザクションとしてマークされています

分類Dev

クラスがハッシュマップのキーとして使用されていない場合、ハッシュコードをオーバーライドする実用的なポイントはありますか?

分類Dev

Tomcatサーバーで実行されているJavaアプリケーションにドメイン名をマッピングする方法

分類Dev

Spring BootアプリケーションのメインメソッドでBeanを正しく初期化するにはどうすればよいですか?

分類Dev

Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

分類Dev

Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

分類Dev

Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

分類Dev

アプリケーションがバックグラウンド状態にあり、locanotificationで起動する場合は、appdelegateで呼び出されたメソッドをタップします

分類Dev

zend1フレームワークアプリケーションのさまざまな場所でgetUserメソッドを使用して提供されているFacebookSDKの誤ったID

Related 関連記事

  1. 1

    パピーリナックス(アプリソースが提供されていない場所)で.debアプリケーションを実行するためのメソッドまたは互換性ライブラリはありますか?

  2. 2

    URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

  3. 3

    NestedServletExceptionの取得:リクエストの処理に失敗しました。ネストされた例外はjava.lang.IllegalStateExceptionです:マップされたあいまいなハンドラーメソッド

  4. 4

    Windows 7で、コマンドライン(コンソール)アプリケーションへのショートカットを作成し、コマンドウィンドウを開いたままにする方法はありますか?

  5. 5

    受信した通知のメソッドハンドラーがアプリケーションをクラッシュさせます。:(

  6. 6

    起動後にSpringブートアプリケーションが失敗する-存在しないメソッドを呼び出そうとしました。次の場所から試行されました

  7. 7

    パラメータに応じてDelphiハイブリッド(コンソールまたはGUI)アプリケーションを作成する方法は?

  8. 8

    Ubuntu 16.04 GLib-GIO-メッセージ:「メモリ」GSettingsバックエンドを使用しています。設定が保存されたり、他のアプリケーションと共有されたりすることはありません

  9. 9

    Spring MVCアプリケーションを構成して、アプリケーションを実行するたびにコントローラーまたは任意のメソッドが自動的に呼び出されるようにすることはできますか?

  10. 10

    Spring MVCアプリケーションを構成して、アプリケーションを実行するたびにコントローラーまたは任意のメソッドが自動的に呼び出されるようにすることはできますか?

  11. 11

    このSpringBootアプリケーションでマルチパートアップロードを処理できないのはなぜですか?「一致するエディターまたは変換戦略が見つかりません」というメッセージが表示されます

  12. 12

    このSpringBootアプリケーションでマルチパートアップロードを処理できないのはなぜですか?「一致するエディターまたは変換戦略が見つかりません」というメッセージが表示されます

  13. 13

    他のスレッドが処理している間、メインスレッド(Qtアプリケーション)の応答性を維持する(POSIX)

  14. 14

    残念ながら、フラグメントビューでブックマークされたアイテムをクリックするとアプリケーションが停止しました。タイトルとリンクを保存するためにjsonを使用しています。

  15. 15

    チャネルを使用するためだけに調整されたPhoenixアプリケーションは、複数のマシンでどのように拡張できますか?HAProxyを使用していますか?すべてのノードにメッセージをブロードキャストする方法は?

  16. 16

    アプリがバックグラウンドにあるが一時停止されていないときにプッシュ通知を処理する方法

  17. 17

    画像を処理するマルチスレッドアプリケーションを作成していますが、シーケンシャルバージョンの方が高速です。なぜですか?

  18. 18

    ZeroMQソケットをRatchetWebソケットライブラリにバインドして、PHPアプリケーション用のリアルタイムアプリケーションを作成するにはどうすればよいですか?

  19. 19

    iOSデバイスがロックされているときまたは別のアプリケーションで再生されているバックグラウンドオーディオを処理するにはどうすればよいですか?

  20. 20

    アプリケーションが複数のマシンで実行されているときにPlayFrameworkでキャッシュを処理する

  21. 21

    Spring Data JPA-「プロキシを初期化できませんでした-セッションなし」-メソッドがトランザクションとしてマークされています

  22. 22

    クラスがハッシュマップのキーとして使用されていない場合、ハッシュコードをオーバーライドする実用的なポイントはありますか?

  23. 23

    Tomcatサーバーで実行されているJavaアプリケーションにドメイン名をマッピングする方法

  24. 24

    Spring BootアプリケーションのメインメソッドでBeanを正しく初期化するにはどうすればよいですか?

  25. 25

    Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

  26. 26

    Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

  27. 27

    Spring Bootアプリケーションでログアウトが機能しない(POSTメソッドはサポートされていません)

  28. 28

    アプリケーションがバックグラウンド状態にあり、locanotificationで起動する場合は、appdelegateで呼び出されたメソッドをタップします

  29. 29

    zend1フレームワークアプリケーションのさまざまな場所でgetUserメソッドを使用して提供されているFacebookSDKの誤ったID

ホットタグ

アーカイブ