0

この記事からジャージー Web サービスについて学び始め、作成しました。次にやりたいことは、このサービスから返されたデータから Web ページにドロップダウン メニューを設定することです。

しかし、[詳細] ボタンをクリックするたびに Web サービスが実行されているコンソールに次のエラー メッセージが表示されます。

java.lang.IllegalAccessException: クラス com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator$8 はクラス javax.ws.rs.core.Response のメンバーに修飾子が「保護されている」とアクセスできません

Service Java コードの単純化されたバージョンがどのように見えるかを次に示します。

@Path("/abcResource")
public class AbcResource{


    @GET
    @Path("showAllStr")
    @Produces(MediaType.TEXT_PLAIN)
    public String[] getAllStr() {
        String[] result={"option1", "option2","option3"};
        return result
    }




    //This works!! give me results on http://localhost:8080/rest/abcResource/showAll  in browser that shows that service is running fine

    @GET
    @Path("showAll")
    @Produces(MediaType.TEXT_PLAIN)
    public String showAllStr() {

        String result="blah lblah";

        return result
    }

}

JavaScript コード:

<script type="text/javascript">

    var offset = 0;
    var howMany = 5;

    $(document).ready(function() {
        $("#btnMore").click(function() {
            // fetch some more records from the server side
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "http://localhost:8080/rest/abcResource/showAllStr",

                success: onSuccess,
                error: onError
            });
        });
    });

    function onSuccess(result) {
        // process web service return data
        // populate ul with data
        $("#datalist").empty();
        var strings = result.d;
        for (var i = 0; i < strings.length; i++)
            $("#datalist").append("<li>" + strings[i] + "</li>");
        // move offset
        offset += howMany;
    }

    function onError(result) {
        // ajax call failed
        alert(result.status + ': ' + result.statusText);
    }
</script>

ドロップダウンを開く HTML コード:

<form id="form1" runat="server">
    <div>
        <ul id="datalist"></ul>
        <br />
        <input type="button" id="btnMore" value="more" />
    </div>
</form>

Chrome または Firefox のドロップダウンに何も表示されませんがhttp://localhost:8080/rest/abcResource/showAll、ブラウザーで開くと、サービスが文字列を返していることがわかります。

何が悪いのかわかりません。上記のコードから理解できますか?

4

2 に答える 2

0

String 配列を返すことはできないと思います。こちらをご覧ください https://stackoverflow.com/a/5393792/461499

于 2013-04-09T20:24:24.337 に答える