0

我从这篇文章开始了解 Jersey 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

1

根据 Pavel Bucek 的说法:

这只是小问题,已经修复 - 此消息的日志级别已更改为 FINE 而不是 SEVERE..;1.10 将不再产生这些烦人的消息。

它根本不影响 wadl 的生成。它与 XML Schema 生成有关,在这些情况下是可以预期的。

来源:http: //java.net/projects/jersey/lists/users/archive/2011-10/message/117

于 2013-06-04T20:00:38.410 回答
0

我猜你不能返回一个字符串数组。见这里https://stackoverflow.com/a/5393792/461499

于 2013-04-09T20:24:24.337 回答