2016-09-21 9 views
1

/Example/Siteにアクセスしようとすると404が見つかりませんでしたが、ページはwebapp/WEB-INF/jsp/にあります。なぜこれは機能しないのですか?閲覧可能なルートが返されます404

ここ
<web-app id="WebApp_ID" version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>jmattheis rest app</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <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>com.stackoverflow.jmattheis.rest</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.servlet.filter.forwardOn404</param-name> 
      <param-value>true</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.mvc.templateBasePath.jsp</param-name> 
      <param-value>/WEB-INF/jsp</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.server.tracing</param-name> 
      <param-value>ALL</param-value> 
     </init-param> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey-servlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

リソース:JSPのテンプレートサポートを使用したい

@Component 
@Path("Example") 
public class Example { 
    @GET 
    @Path("/Site") 
    @Produces(MediaType.TEXT_HTML) 
    public Response getSite() { 
     return Response.ok(new Viewable("/test")).build(); 
    } 
} 

答えて

0

Have a look at the Jersey2 MVC documentation

ジャージーWebアプリケーションは、アプリケーションのweb.xmlにサーブレット・フィルターではなく、サーブレットとして登録する必要があります。 Servlet 3.0で導入されたweb.xmlレスのデプロイメントスタイルは、現時点では、Jersey MVCのテンプレートサポートを必要とするWebアプリケーションではサポートされていません。

サーブレットをフィルタに変更して機能させる必要があります。

ジャージー2の初期のバージョンではこれは必要ではないかもしれないが、それについての古い文書は見つからないのでわからない。このよう

<web-app id="WebApp_ID" version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>jmattheis rest app</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <filter> 
     <filter-name>jersey-filter</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.stackoverflow.jmattheis.rest</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.servlet.filter.forwardOn404</param-name> 
      <param-value>true</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.mvc.templateBasePath.jsp</param-name> 
      <param-value>/WEB-INF/jsp</param-value> 
     </init-param> 
     <init-param> 
      <param-name>jersey.config.server.tracing</param-name> 
      <param-value>ALL</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>jersey-filter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

</web-app> 
関連する問題