3

这是我的 curl 方法请求映射到失败并显示 400 的 POJO:

卷曲请求:

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d     '{"key":"XYZ","uniqueId":"ABCD"}' http://localhost:8080/api/rest/connect/tick/view.json
* Adding handle: conn: 0x1cb54c0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1cb54c0) send_pipe: 1, recv_pipe: 0
* About to connect() to localhost port 8080 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> POST /api/rest/connect/tick/view.json HTTP/1.1
> User-Agent: curl/7.32.0
> Host: localhost:8080
> Accept: application/json
> Content-type: application/json
> Content-Length: 53
>
* upload completely sent off: 53 out of 53 bytes
< HTTP/1.1 400 Bad Request
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Content-Type: text/html;charset=utf-8
< Content-Length: 971
< Date: Thu, 19 Sep 2013 13:16:29 GMT
< Connection: close    

应用程序配置.XML:

<context:annotation-config/>
<mvc:annotation-driven/>
followed by, Bean Definitions

控制器类:

@RequestMapping(value="/tick/view.*", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE, produces=MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
    public IConnectResponse tickConnectPost(@RequestBody final ConnectServiceBean     connectServiceBean) {

连接服务豆:

import java.io.Serializable;
public class ConnectServiceBean implements Serializable {
    private static final long serialVersionUID = 1L;
    private String key;
    private String uniqueId;
    //Getters and setters }

但是正在为另一个方法请求映射到字符串:

curl -i -H "Content-Type: application/json" -X POST -d '{"JKL@user.com"}'     http://localhost:8080/api/rest/connect/tick/XYZ/view.json
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Cache-Control: no-cache, no-store, max-age=0
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Content-Language: en-GB
Transfer-Encoding: chunked
Date: Thu, 19 Sep 2013 13:11:40 GMT

控制器:

@RequestMapping(value="/tick/{key}/view.*", method = RequestMethod.POST,      consumes="application/json", produces = "application/json; charset=utf-8")
    public IConnectResponse tickConnectPostString (
        @PathVariable("key") String key, @RequestBody String uniqueId
    ) {}

我觉得杰克逊映射有问题。但我也有所有必要的 POM 依赖项,我也在其他一些 stackoverflow 帖子中读到,我只需要用于 bean 映射的杰克逊配置(虽然不确定) org.codehaus.jackson jackson-core-asl 1.9.7
org.codehaus.jackson jackson -mapper-asl 1.9.7

4

0 回答 0