rest - Java EE Servlet 和 REST 路径冲突

标签 rest jsp servlets jakarta-ee wildfly-swarm

我正在尝试编写一个提供 HTML 和 REST 界面的 Java Web 应用程序。我想创建一个使用 JSP 提供 HTML 界面的 servlet,但数据也应该可以通过 REST 访问。

我已经拥有的 REST 是这样的:

@javax.ws.rs.Path("/api/")
public class RestAPI {

   ... // Some methods
}

@WebServlet("/servlet") 
public class MyServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.getWriter().write("Howdy at ");
    }
}

现在,当我将 @WebServlet("/servlet") 注释更改为 @WebServlet("/") 时,Servlet 可能由于与 REST 的路径冲突而停止工作。

如何在特定路径上提供 REST 并在根目录中提供 HTML?

谢谢你, 卢卡斯·詹德勒

最佳答案

这对我来说似乎没问题。我做了什么:

  1. 在我的 pom.xml 中,我依赖于 org.wildfly.swarm:undertow (用于 Servlet API)和 org.wildfly .swarm:jaxrs(用于 JAX-RS)。当然还有 Swarm Maven 插件。

  2. 对于 servlet,我只有一个类:

@WebServlet("/")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("Hello from servlet");
    }
}
  • 对于 JAX-RS,我有以下 2 个类:
  • @ApplicationPath("/api")
    public class RestApplication extends Application {
    }
    
    @Path("/")
    public class HelloResource {
        @GET
        public Response get() {
            return Response.ok().entity("Hello from API").build();
        }
    }
    

    为了测试,我运行 curl http://localhost:8080/curl http://localhost:8080/api。结果符合预期。 (也许我的例子太简单了?)

    关于rest - Java EE Servlet 和 REST 路径冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40232637/

    相关文章:

    android - Android 中的 REST 客户端吞吐量

    java - 将列表从 JSP 发送回 servlet

    java - 我无法在 JSP 中导入 CSS 文件

    java - 如何使用 session.setAttribute ("id", id) onclick java servlet 中的按钮?

    java - Jersey Rest Service 中的多个 PUT 方法

    python - 用于创建RESTful Web服务的Node vs python

    http - 将 servlet 请求转发到另一台服务器

    java - session 用户计数器不工作

    java - HttpURLConnection.getResponseCode 未获取 HTTP 响应代码 206

    java - 如何将列数未知的 ResultSet 映射到 List 并将其显示在 HTML 表格中?