1

JQuery の JSON を、Jersey JAVA の JSON を取得するサーバーに投稿することさえ可能ですか?私は問題に苦しんでいます。私はJersey REST GETを使用してJSONをサーバーに投稿するajaxを持っていますが、何も機能していません。それが正しい方法であるかどうか疑問に思っています。問題に関するコードを使用した以前の質問は次のとおりです。

Java のコードはサーバーに実装されます。

@Path("/helloworld")
public class GetData {
    @GET
    @Consumes("application/json")
    @Produces("application/json")
    public String getResource(JSONObject obj) throws IOException {

        InputStream in = (InputStream) obj.values();
        String data = IOUtils.toString(in);

        JSONObject out = (JSONObject) JSONSerializer.toJSON(data);

        String result = out.getString("name");
        return data;
    }                           
}

Javascript コード:

<script>
    $.ajax({
        url: '/helloworld',
        type: 'POST',
        contentType: 'application/json',
        data: { json: JSON.stringify({
            name:"Bob"
        })},
        dataType: 'json'
    });
    alert("json posted!");
</script>

サーバー コンソールのメッセージ:

2012-apr-12 10:49:51 com.sun.jersey.spi.container.ContainerRequest getEntity ALLVARLIG: Java クラス net.sf.json.JSONObject および Java 型クラス net.sf.json.JSONObject のメッセージ本文リーダー、および MIME メディア タイプ application/octet-stream が見つかりませんでした。MIME メディア タイプと互換性のある登録済みメッセージ本文リーダーは次のとおりです。 application/octet-stream -> com.sun.jersey.core.impl.provider.entity.ByteArrayProvider

4

1 に答える 1

1

ManseUK がコメントで暗示しているように、POST 要求を送信し、GET ハンドラーがそれを受け取ることを期待しています。@GETハンドラーの を に変更するか@POST、 POST を GET にデリゲートするなど、本当にばかげたことを行います ;)

@POST
@Consumes("application/json")
@Produces("application/json")
public String getResourceByPost(JSONObject obj) throws IOException {
    return getResource(obj);
}                           
于 2012-04-12T09:03:56.290 に答える