【发布时间】:2014-08-11 15:45:14
【问题描述】:
我有一个需要对象的更新方法(AJAX 服务)。这个对象由 JSon 填充,我想测试它,但我不能..
我使用 spring mvc 来设置我的服务。
我的服务:
@RequestMapping(value="texte/updateMyObject", method= RequestMethod.POST, consumes = "application/json;charset=UTF-8")
public void updateMyObject(MyObject myObject) throws IOException {
logger.info("UPDATE !!!");
}
我的对象:
public class MyObject {
private Integer id;
private String name;
public MyObject(){}
// getter & setter
}
我使用 Postman(chrome 工具)来测试我的服务:https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm
我想我必须发送好的 JSON,但我不知道是哪个。
目前我已经测试了这个模式:
"MyObject" : {"id" : "1", "name" : "test"}
或 {“id”:“1”,“名称”:“测试”}
编辑 1:
调用我的服务时,myObject的字段都是空的。
编辑 2:
我玩这种HTTP请求:
POST /myapp/texte/updateMyObject.sp HTTP/1.1
Host: localhost:8080
Content-Type: application/json; charset=UTF-8
Cache-Control: no-cache
{"id" : "1", "name" : "test"}
编辑 3:
我的配置在我的 web.xml 中弹出。如果你需要我的上下文问我。
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.sp</url-pattern>
</servlet-mapping>
编辑 4: 我进行了以下测试以向您展示我的对象未填充。
【问题讨论】:
-
但它不起作用。 那句话完全没用。告诉我们如何它不起作用。你期望会发生什么?实际发生了什么?
-
什么不起作用?
{"id" : "1", "name" : "test"}看起来很合适。 -
这些是我的 JSON 测试不起作用。
-
具体来说。您在“updateMyObject”方法中看到了什么。我的对象是空的吗?是别的吗?另外,“texte”是错字吗?
-
您的控制器中缺少 @RequestBody for MyObject 参数。
标签: java json spring rest spring-mvc