これは私をナットにしています。スプリングコントローラが2回呼び出されています
<context:component-scan base-package="au.com.mypackage.service" />
<context:annotation-config />
<mvc:annotation-driven />
とシンプルなコントローラ:メッセージ・コンバータを使用する
@Controller
public class MyController {
@RequestMapping(value = "/data/{id}", method=RequestMethod.GET)
@ResponseBody public Bean getData(@PathVariable String id) {
Bean bean = new Bean();
bean.setSomething("hello");
bean.setSomethingElse(5);
return bean;
}
はそれが仕事だ行うには、私はちょうどこのように構成されたサーブレットコンテキスト・ファイルを使用して、簡単な春のアプリを持っています。 SoapUIからこのリクエストを提出します。
GET http://localhost:8080/spring/data/123 HTTP/1.1
Accept-Encoding: gzip,deflate
Accept: application/json
User-Agent: Jakarta Commons-HttpClient/3.1
Host: localhost:8080
これは正常に動作しているようです。しかし、私がtomcatのログを見ると、コントローラーが2回呼び出されることがわかります。これはJSONでも問題ありません。しかし、私がXMLを要求することに変わると、それはひどく間違っています。 2番目の要求(とにかく起こってはならない)は、ソケットのクロージャなどのためにXStreamの大規模なエラーとしてトリガします。
問題の根本原因はコントローラの呼び出しです。誰がなぜこれが起こっているのか知っていますか?
これは、通常、Bean \コントローラがSpringでインスタンス化/登録されている場合です。あなたのアプリケーションの設定をどうやって設定しますか?ちょうどXMLを使用するか、注釈も使用しますか? –
アノテーションだけで – drekka