jsp - 无法使用 Jersey 服务器加载 JSP 页面

标签 jsp jersey jersey-2.0

我正在为我的 Web 服务使用 jersey 2.4,并且无法让主页加载 index.jsp。我制作了一个 IndexService POJO 来尝试从那里加载它,但这不起作用。我只想使用主页,而不是使用 IndexService POJO。已到达 POJO,但返回以下内容:

HTTP 状态 500 - org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:找不到 MessageBodyWriter 媒体类型=文本/html,类型=类 org.glassfish.jersey.server.mvc.Viewable,genericType=class org.glassfish.jersey .server.mvc.Viewable。

我的 web.xml 文件:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>rest</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name>
        <param-value>/WEB-INF/jsp/</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

依赖 pom.xml 文件:
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>2.4</version>
        <type>pom</type>
    </dependency>

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

    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc</artifactId>
        <version>2.4</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc-jsp</artifactId>
        <version>2.4</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.8</version>
    </dependency>

    <dependency>
        <groupId>xom</groupId>
        <artifactId>xom</artifactId>
        <version>1.2.5</version>
    </dependency>
<dependencies>

索引服务POJO:
@Path("/")
public class IndexService {

    @GET
    @Path("/index")
    @Produces(MediaType.TEXT_HTML)
    public Viewable indexPage() {
        return new Viewable("/index.jsp", null);
    }
}

最佳答案

您需要添加 JspMvcFeature到您的应用程序的配置。由于您使用的是 web.xml要配置您的应用程序(资源和提供程序的包扫描,设置属性),您需要添加以下 init-parameter :

<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value>
</init-param>

关于jsp - 无法使用 Jersey 服务器加载 JSP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19865738/

相关文章:

mysql - 一个sql查询的结果集可以在另一个sql查询中使用吗?

java - 如何在Struts中使用actionform设置文本框值

java - glassfish 版本中 JSON 输出的差异

java - 我缺少什么来运行 jersey 2 网络服务?

rest - Jersey 客户端 DELETE 在第二次调用时挂起

apache - 自定义错误页面 404

java - Struts 2选择只读属性

jsp - jsp 和 servlet 应用程序中的 php header 的替代是什么来停止重复

java - 测试接受 zip 文件作为输入的 Rest Api

multithreading - 带有 Jersey 的异步 REST API