Spring REST アプリケーションを作成しました。curl コマンドでテストしたところ、本当にうまくいきました。
別の GWT Ajax アプリケーションには、Spring Rest で動作しない RequestBuilder オブジェクトがあります。sendRequest メソッドを呼び出した後、イベントonResponseReceived
は発生しますが、getText
メソッドは空の文字列を返します。
これは私の春のservlet.xml構成ファイルの一部です
<bean id="jsonmembertemplate"
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" >
<property name="contentType" value="text/javascript;charset=UTF-8"/>
<property name="disableCaching" value="false"/>
</bean>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
そして私のコントローラークラスの一部
@RequestMapping(method = RequestMethod.GET, value="/member/get/{memberid}")
public String getMember(Model model, @PathVariable("memberid") int id, HttpServletResponse response) {
model.addAttribute("member", memberDao.get(id));
return "jsonmembertemplate";
}
およびgwtコード
private RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, "http://localhost:8080/depna-nat-server/member/get/1?");
try {
rb.setHeader("Content-Type", "text/javascript;charset=UTF-8");
rb.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
Window.alert(Integer.toString(response.getStatusCode()));
Window.alert(response.getStatusText());
Window.alert(Integer.toString(response.getText().length()));
area.setText(response.getText());
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert("fail");
}
});
} catch (RequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}