gpt4 book ai didi

java - tomcat 的 Jersey 休息服务无法在 web.xml 中使用欢迎文件配置

转载 作者:行者123 更新时间:2023-11-28 22:17:20 26 4
gpt4 key购买 nike

我正在尝试使用 tomcat 学习 Jersey 休息服务,但在尝试呈现 index.html 然后发出 ajax 请求以调用 Jersey 服务时遇到问题。 WebContent

这是我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>rest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>


<servlet>
<servlet-name>Rest With Jersey2</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.rest.jersey2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Rest With Jersey2</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

这是我的 Jersey 服务

package com.rest.jersey2;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/hello")
public class Test {

@GET
@Produces("application/json")
public Response defaultReverser() {

String result = "" ;
return Response.status(200).entity(result).build();
}


}

我想从 index.html 中包含的 first.js 访问以请求

$.ajax({
url: "/hello",
type: "GET",
success: function(){
alert("success");
},
error: function(){
alert("error!");
}
});

当我在 tomcat 服务器上运行我的休息应用程序时,它呈现 index.html 但在单击按钮请求 ajax for url/hello 以调用 jersey 服务后给出 404 Not found。控制台无错误信息,服务器正常启动。

你能指导我让它工作吗?

编辑: 如果我独立测试我的 rest 服务,它不会在 web.xml 中使用 url 映射/rest/*。但是,如果我使用/* 它会起作用,但在这种情况下我无法显示欢迎文件。

当我尝试使用 rest 服务呈现 index.html 时,此页面无法找到包含在 index.html 中的 first.js 但我尝试将 first.js 放在许多目录中,包括与源文件相同的目录休息服务。

最佳答案

我认为您可以做的第一件事就是独立测试您的休息服务。一旦你看到它工作,你检查 URL 并查看你的 javascript 代码是否指向确切的路径。

由于您“未找到”- 我会说您可能没有定位正确的服务 URI。可能是因为您在 jquery 中传递了“/hello”,您的服务映射在 rest/* 下。 (所以/rest/hello 可能是你的 URL)。如果不是,请使用您服务的完整 URL 进行检查(例如:localhost:8080/rest/rest/hello)。请记住 URL 将是 host:port/app/mappedurl/serviceurl

如果仍有问题,请查看此示例中由 JQuery 连接的 Jersey 服务 (https://github.com/NicolasFonte/rentals/blob/master/src/main/java/nicolas/trial/rest/RentalResource.java) (https://github.com/NicolasFonte/rentals/blob/master/src/main/webapp/js/rentals.js),您几乎可以解决问题。

关于java - tomcat 的 Jersey 休息服务无法在 web.xml 中使用欢迎文件配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com