1

Spring を 3.0.5 から 3.1.1 にアップグレードしたところ、奇妙な問題に遭遇しました。次のコードは、以前のバージョンでは正常に機能しました。

@RequestMapping("/getPeople")
public Object getPeople()
    {
        HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("MyResponseHeader", "MyValue");
        return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK);
    }

しかし、最新バージョンでは 404 エラーが発生します。これを解決するには、メソッドで戻り値の型を ResponseEntity として言及する必要があります。

@RequestMapping("/getPeople")
    public ResponseEntity getPeople()
        {
            HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("MyResponseHeader", "MyValue");
            return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK);
        }

これは許容できる回避策ですか、それともここで何か間違ったことをしていますか?

4

1 に答える 1

0

以下のコードを試してください。@ResponseBody アノテーションは @RequestBody に似ています。この注釈はメソッドに付けることができ、戻り値の型を HTTP 応答本文に直接書き込む必要があることを示します (モデルに配置したり、ビュー名として解釈したりしないでください)。

@RequestMapping("/getPeople")
@ResponseBody
public Object getPeople()
    {
        HttpHeaders responseHeaders = new HttpHeaders();  
        responseHeaders.set("MyResponseHeader", "MyValue");
        return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK);
    }
于 2012-09-17T15:38:38.753 に答える