私はSpringとREST
アプリケーションから始めます。現在、私自身で1つのアプリケーションを開発しています。Spring Boot @RestController no respond
アプリは標準のSpring Bootプロジェクトと同じように分割されています。すべてのコントローラーはweb
パッケージに含まれています。 「標準」コントローラの1つは、HTTP
リクエストを処理し、HTML
ウェブサイトを返すことです。最初のコントローラからのPOST
要求に応答するREST
コントローラを追加しましたが、404
エラーが表示されます。
コードでどのように見えますか? .jsファイルから
@RestController
@RequestMapping("/users")
public class UserRestController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public ResponseEntity<?> getUser(@RequestParam("userId") String userId, Errors errors) {
AjaxUser response = new AjaxUser();
if (errors.hasErrors()) {
response.message = errors.getAllErrors().stream().map(x -> x.getDefaultMessage()).collect(Collectors.joining(","));
return ResponseEntity.badRequest().body(response);
}
response.setUser(userService.getUserById(Integer.getInteger(userId).intValue()));
return ResponseEntity.ok(response);
}
private class AjaxUser {
private User user;
private String message;
public void setUser(User user) {
this.user = user;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
@Override
public String toString() {
return "User { id:" + user.getId() + ", Name: " + user.getName() + ", surname: " + user.getSurname() + "}";
}
}
}
私は残りのコントローラをトリガするAjaxのクエリを送信する、ここでのコードは次のとおりです。
function sendUserId(id) {
var user = {};
user["userId"] = id;
console.log("USER: ", user);
$.ajax({
type: "POST",
contentType: "application/json",
url: "https://stackoverflow.com/users/user",
data: JSON.stringify(user),
dataType: 'json',
cache: false,
timeout: 100000,
success: function (user) {
var json = "<h4>Ajax Response</h4><pre>"
+ JSON.stringify(user, null, 4) + "</pre>";
console.log("SUCCESS : ", user);
},
error: function (e) {
var json = "<h4>Ajax Response</h4><pre>"
+ e.responseText + "</pre>";
console.log("ERROR : ", e);
}
});
}
userId
はconsole.log
ショー既存および右の値、jQueryをしてHTMLから取得されます。
注:ユーザーのリストを表示するための責任がある標準ユーザー@Controller
が存在して、それは動作しますが、問題はREST
コントローラにユーザIDを送信する時に表示されます。 REST
コントローラが存在せず、ブラウザが404 status response
を返すように動作します。 Btwは、ログインするためにSpring Secureを使用します。
誰かに助けてもらえますか?
BRコンラート
私は多くの可能性をチェックしますが、まだ結果はありません。上記のリクエストパラメータを送信する必要があるjsファイルをどのように再構築するか考えていますか? – okarmusk