私はスプリングブートを使用しています。私は、Webアプリケーションにログインしようとするとスプリングブートあいまいなハンドラ
@RequestMapping(value = "/user/{userId}", method = RequestMethod.GET)
public UserAppDto getNameByUserId(@PathVariable("userId") Long userId) {
return userService.getByUserId(userId);
}
@RequestMapping(value = "/user/{username}", method = RequestMethod.GET)
public UserAppDto getNameByUsername(@PathVariable("username") String username) {
return userService.getNameByUsername(username);
}
、私が手に:私は論文2つのメソッドを作成し
java.lang.IllegalStateException: HTTPパス 'http://localhost:8080/rest/user/bsmith' のマッピングされたあいまいなハンドラメソッドを: {公共 com.zenar.dto.UserAppDto com.zenar.controller.UserController.getNameByUsername(java.lang.Stringで)、 公共com.zenar.dto.UserAppDto com.zenar.controller.UserController.getNameByUserId(ジャワ。 lang.Long)}
データ型に違いはありません。
URLを変更する必要がありますか?最新リリースの修正URLは、複数のパターンが一致したときSpring MVC documentationによると
正しい:この問題を修正するための一つの方法は、それらの1 より具体的なを作ることです。また質問がありますか? – dunni
HTTPにはテキストしかありません。 Springはある変換を行いますが、実際の人間だけが '123'はユーザ名ではないことを知っています(誰かがそれを使ってユーザをユーザ名として作成しないと言っています)。あなたは何かを制限する正規表現を含めることによってそれを動作させることができるかもしれませんが、私はそれを信じません。 –