我正在尝试使用 Jersey 2.3 设置一个简单的应用程序,在独立的 Tomcat 中提供 jsp 页面。我已经尝试了很多来自网络的方法,但其中大多数都在解释使用 Jersey 和 Grizzly 而不是 Tomcat。所以我找不到我的问题的解决方案/解释,为什么我的应用程序没有提供 jsp。有人知道这里有什么问题或遗漏吗?请在下面找到我的应用程序。
pom.xml
...
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-mvc-jsp</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>/jhello</path>
<enableNaming>false</enableNaming>
<finalName>jhello-standalone.jar</finalName>
<charset>utf-8</charset>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
web.xml
<filter>
<filter-name>jhello</filter-name>
<filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.granatasoft.playground.jersey</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/WEB-INF/views</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(decorators|scripts|styles|resources|(WEB-INF/views))/.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jhello</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
HelloJersey.java
package com.granatasoft.playground.jersey;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.server.mvc.Viewable;
@Path("/hello")
public class HelloJersey {
@GET
@Produces(MediaType.APPLICATION_JSON)
public String sayJsonHello() {
return "{'hello': 'jersey'}";
}
@GET
@Produces(MediaType.TEXT_HTML)
public Viewable sayHtmlHello() {
return new Viewable("hello");
}
}
你好.js
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Hello JSP</title>
</head>
<body>
<h1>Hello JSP</h1>
</body>
</html>