0

いくつか問題があります。1 つ目は、javascript を使用して Web サービスからデータを取得する方法がわからないことです。2 つ目は、XML ではなく JSON 形式でデータを取得しようとすると、常に xml が取得されることです。私はjs、Jqueryなどの初心者なので、勉強を始めたばかりです。

http://localhost:8080/UserRest/webresources/users?format=json // Even If format is JSON the result is always XML. Browser is Chrome


<users>
  <user>
    <age>40</age>
    <firstName>Mark</firstName>
    <freeText>Free</freeText>
    <id>1</id>
    <lastName>Lake</lastName>
    <weight>200</weight>
  </user>
  <user>
    <age>30</age>
    <firstName>Sam</firstName>
    <freeText>Words</freeText>
    <id>2</id>
    <lastName>Grass</lastName>
    <weight>105</weight>
  </user>
</users>

そして、私が試してみると

http://localhost:8080/UserRest/webresources/users?format=XML

これはSafariで、私は得ました:

40MarkFree1Lake20030SamWords2Grass105

ウェブサービス:

@GET 
@Override
@Produces({"application/xml", "application/json"})
public List<User> findAll() {
    return super.findAll();
}

ページ:

      function fetchUserFunction()
        {
            $.getJSON("http://localhost:8080/UserRest/webresources/users?format=json",

        function(data) {
            $.each(data, function(key, value) {
                    alert(key + "=" + value);
                    $('#maindiv').append('<li id="' + key.toString() + '">' + value.toString() + '</li>');
                });
        });

        }
    </script>
</head>
    <body>
        <h1>Users</h1>
        <a href="http://localhost:8080/UserRest/webresources/users"> Test restful service</a>
        <button onclick="fetchUserFunction()">Fetch Users</button>
        <div id="maindiv"></div>
    </body>
</html>

質問:

  1. JSONまたは/およびJqueryまたは純粋なjsを使用して、JavaScriptでページからデータをフェッチする方法は? 誰かが私のjs関数に基本的なケースを実装し、その理由と内容を説明できますか? 私の関数は [object Object],[object Object] だけを返しますか?

  2. データを XML ではなく JSON 形式にする方法は?

  3. 取得したデータからテーブルを作成する最良の方法は何ですか?

  4. findAll() のように、webservice クラスで特定のメソッドを呼び出すことはできますか?

  5. JPA および JAAS 認証を使用しています。Web サービスを使用していて、クライアントが別のサーバーにある場合にキャッシュの問題を回避するにはどうすればよいですか? Eclipselink が DB からではなくキャッシュからデータを読み取っているため、データが古い場合がありますか?

  6. 今日はどうでしたか?

  7. これは、一度に多くの質問をするのに適していますか?

サーミ語

4

1 に答える 1

1
@GET
@Produces({"application/xml", "application/json"})
public String doGetAsXmlOrJson() {
    ...
}

doGetAsXmlOrJson メソッドは、メディア タイプ「application/xml」と「application/json」のいずれかが受け入れられる場合に呼び出されます。両方が同等に受け入れられる場合は、前者が最初に発生するため、前者が選択されます。

これはhttp://jersey.java.net/nonav/documentation/snapshot/jaxrs-resources.htmlで見つかりました

JSON を JavaSCript に取得するには、次のように呼び出します。

res = JSON.parse(responseJson);

res は何でも簡単にできる JS Object になります。

于 2013-01-22T12:55:28.463 に答える