gpt4 book ai didi

java - 配置 Jersey MVC 以在没有 web.xml 的情况下提供 Viewable

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:09 25 4
gpt4 key购买 nike

重要的部分是:没有web.xml。

我已经有一个在 Glassfish 3.1.2.2 上运行的 JAX-RS 应用程序,没有 web.xml,完全由注释配置。

问题是,我如何才能保持无 web.xml 的极乐世界,并且仍然使用 Jersey MVC 来提供来 self 的 Maven .war 项目的资源或 webapp 目录中的静态资源?

我在很多答案中看到我如何使用 web.xml 配置来做到这一点,但没有人提到如何在没有 web.xml 文件的情况下映射资源。

目前我在resources目录下有一个ui.html文件,一个JAX-RS Application子类和一个资源类。项目中没有 web.xml,以下运行良好:

@Path("/ui")
@GET
public Response ui() {
String content = "Hello StackOverflow";
return Response.ok(content).build();
}

虽然这个因解析器的 IOException 而失败:

   @Path("/ui")
@GET
public Response ui() {
Viewable viewable = new Viewable("/ui.html");
return Response.ok(viewable).build();
}

java.io.IOException: 模板名称/ui.html 无法解析为完全限定的模板名称我也尝试用相对路径指定它,但这也不起作用。

我为 Jersey 使用的依赖项如下:

     <dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.18</version>
</dependency>

我知道一个合适的示例项目是最好的并且愿意提供如果人们很难理解我在说什么,请告诉我。

最佳答案

Peter Metz,我相信这可以通过在扩展 org.glassfish.jersey.servlet.ServletContainer(Jersey 2.26)的类上使用 @WebFilter 注释来实现:-

package com.myorg.myapp.config;

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

import org.glassfish.jersey.servlet.ServletContainer;

@WebFilter(value = "/*", initParams = @WebInitParam(name = "javax.ws.rs.Application", value = "com.myorg.myapp.config.JerseyConfig"))
public class JerseyFilter extends ServletContainer {

private static final long serialVersionUID = 1L;

}

关于java - 配置 Jersey MVC 以在没有 web.xml 的情况下提供 Viewable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159077/

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