0

リクエストを送信しようとしています。curl で次のことを行います。

curl -v --header "location: 60.004:8.456" --cookie "sessionToken=~session" -i -X PUT -H 'Content-Type: application/json' -d '{"data":"{"FCT":"Welcome", "Uni":"Welcome to DI"}"}' localhost:8080/tester/apps/e39/data

何らかの理由でクラスに一致しますが、このメソッドには一致しません:

@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createDocumentRoot(JSONObject inputJsonObj,
        @Context UriInfo ui, @Context HttpHeaders hh) {
}

編集:クラスは @Path("{appId}/data") で定義されています

問題はパスではありません。デバッグしたところ、クラスが正しく識別されていることがわかりました。メソッドを入力せずにクラス内に入った後、悪いリクエストがスローされるだけです。

curl の詳細は次のとおりです。

* About to connect() to localhost port 8080 (#0)
*   Trying 127.0.0.1... connected
> PUT /tester/apps/e39/data HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4                         libidn/1.23 librtmp/2.3
> Host: localhost:8080
> Accept: */*
> Cookie: sessionToken=~session
> location: 60.004:8.456
> Content-Type: application/json
> Content-Length: 60
> 
* upload completely sent off: 60out of 60 bytes
< HTTP/1.1 400 Bad Request
HTTP/1.1 400 Bad Request
< Server: Apache-Coyote/1.1
Server: Apache-Coyote/1.1
< Content-Type: text/html;charset=utf-8
Content-Type: text/html;charset=utf-8
< Content-Length: 990
Content-Length: 990
< Date: Tue, 02 Jul 2013 21:46:56 GMT
Date: Tue, 02 Jul 2013 21:46:56 GMT
< Connection: close
Connection: close
4

1 に答える 1

0

問題は間違ったjson構文にありました。

'{"data":"{"FCT":"Welcome", "Uni":"Welcome to DI"}"}'

これに変更した後、うまくいきました:

'{"data":
{"FCT":"Welcome",
"Uni":"Welcome to DI"}}'

JSONオンラインパーサーを使用してjson構文を確認しました。誰かが必要な場合のリンクは次のとおりです: http://json.parser.online.fr/

于 2013-07-03T09:47:20.270 に答える