我正在为我的 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/