Ich versuche eine einfache Anwendung mit Jersey 2.3 zu erstellen, die eine JSP-Seite in einem eigenständigen Tomcat bedient. Ich habe eine Menge Howto's aus dem Internet ausprobiert, aber die meisten von ihnen erklären Jersey mit Grizzly und nicht Tomcat. So konnte ich keine Lösung/Erklärung für mein Problem finden, warum die JSP nicht von meiner Anwendung bedient wird. Hat jemand eine Idee was hier falsch ist oder fehlt? Bitte finden Sie unten meine Bewerbung.Jersey mit MVC Templates und Tomcat
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");
}
}
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>
Diese Verbindung ist tot. Das neue ist https://jersey.java.net/nonav/apidocs/latest/jersey/ –
Danke, auch in der Antwort behoben. –