2013-10-18 5 views
6

के साथ जर्सी मैं एक स्टैंडअलोन टोमकैट में एक जेएसपी पेज की सेवा कर जर्सी 2.3 के साथ एक साधारण एप्लिकेशन स्थापित करने की कोशिश कर रहा हूं। मैंने वेब से बहुत कुछ करने की कोशिश की है, लेकिन उनमें से अधिकतर जर्सी का उपयोग ग्रिज़ली के साथ और टॉमकैट के साथ नहीं कर रहे हैं। तो मुझे अपनी समस्या के लिए समाधान/स्पष्टीकरण नहीं मिला क्योंकि मेरे आवेदन द्वारा जेएसपी क्यों नहीं परोसा जाता है। क्या किसी को पता है कि यहां क्या गलत है या गायब है? कृपया मेरे आवेदन के नीचे खोजें।एमवीसी टेम्पलेट्स और टॉमकैट

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> 

उत्तर

6

आप पुराने संपत्ति (com.sun.jersey.config.property.JSPTemplatesBasePath) आधार-पथ के लिए नाम का उपयोग कर रहे हैं। नया एक

jersey.config.server.mvc.templateBasePath.jsp 

उपयोग करने का प्रयास (JspMvcFeature और MvcFeature में गुण देखें)।

अन्य संपत्ति (com.sun.jersey.config.property.WebPageContentRegex) फिलहाल जर्सी 2.x में समर्थित नहीं है।

+0

वह लिंक मर चुका है। नया एक है https://jersey.java.net/nonav/apidocs/latest/jersey/ –

+0

धन्यवाद, उत्तर में भी तय किया गया है। –

2

यहाँ कुछ जर्सी फिल्टर init पैरामीटर आप पर एक नज़र लेने के लिए चाहते हो सकता है कर रहे हैं (मैं जर्सी 2.5 का उपयोग कर रहा बिलाव 7 के अंदर - मेरे web.xml के बाकी तुम्हारा के समान दिखता है):

<init-param> 
     <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name> 
     <param-value>/WEB-INF/jsp</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.provider.classnames</param-name> 
     <param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.tracing</param-name> 
     <param-value>ALL</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.servlet.filter.staticContentRegex</param-name> 
     <param-value>(/index.jsp)|(/(content|(WEB-INF/jsp))/.*)</param-value> 
    </init-param> 

JSPMvcFeature param आपकी स्थिति में उपयोगी हो सकता है। आप स्थैतिक सामग्री कॉन्फ़िगरेशन के साथ-साथ ट्रेसिंग भी देख सकते हैं जिसे आपको किसी बिंदु पर निश्चित रूप से उपयोगी होना चाहिए।

+0

मैं अपनी आरएसटी सेवा से जेएसपी वापस करने की कोशिश कर रहा हूं, लेकिन 'web.xml' में सभी कॉन्फ़िगरेशन करने के बाद, प्रतिक्रिया में जेएसपी नहीं मिल सकता है। यूआरएल को मारने के बाद, मैं केवल '{" टेम्पलेटनाम ":"/टेर्स्टजेएसपी "," मॉडल ": []," resolvingClass ": null," templateNameAbsolute ": true} को एक प्रतिक्रिया के रूप में देख सकता था। –

संबंधित मुद्दे