服务器无法识别REST服务中来自客户端的获取请求

时间:2019-06-07 09:00:25

标签: javascript java html

(如果我弄乱了问题的格式,请先致歉,这是我的第一篇Stackoverflow帖子。) 我试图让我的客户向服务器发送请求,以获取具有特定ID的人的信息。客户端将GET请求发送到http://localhost:8080/helloWorld/rest/login/ {ID}。据我所知,它确实将其发送,但是服务器第一次发送回500错误,此后每次发送404错误。

我已经检查了url是否正确,是否正确发出并发送了请求,我的Java程序是否将请求定向到正确的方法,以及该方法是否正确地将信息发送回去,并且一切都应该正常工作。我还让其他几个人检查了我的代码,没有人看到任何问题。 这是我分别为JavaScript函数和Java方法编写的代码:

function loginPerson() {

    var fullId = document.getElementById("idInput").value;
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "http://localhost:8080/helloWorld/rest/login/" + fullId, true);
    xhttp.onreadystatechange = function() {
        if(this.readyState === 4 && this.status === 200) {
            console.log(this.statusText);
            setPerson(this.statusText);
            window.location.href = "index.jsp";
        }
    };
    xhttp.send();
    console.log("request sent to http://localhost:8080/helloWorld/rest/login/" + fullId);
}
@Path("/login")
public class LoginResource {

    @GET
    @Path("/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public Person getPersonalInfo(@PathParam("id") int id) {
        return new Person(id);
    }
}

当我按下某个按钮时,将调用JavaScript函数,并且可以从id为idInput的输入字段中正确检索id。第一次发送请求时,我的Tomcat Localhost日志中也出现错误,但未指定错误。如果有关系,Person构造函数将使用id从数据库检索信息,并且Person类已正确指定为XmlRootElement。

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。显然我只是在pom.xml文件中缺少以下依赖项。

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.22.2</version>
</dependency>