2016-04-18 70 views
0

私はApacheのタイルCannotRenderExcption

要求処理が失敗した自分のアプリケーションを実行すると、しかし私はCannotRenderExceptionを取得しています私のWebアプリケーションにタイルを追加しようとしています。ネストされた例外は org.apache.tiles.request.render.CannotRenderException: パスを含むServletExceptionです。 '/WEB-INF/tiles/templates/baseLayout.jsp'です。ここで

実際の例外です:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/tiles/templates/baseLayout.jsp'. 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) 

私のタイル-definition.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
    "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 

<tiles-definitions> 

    <definition name="baseLayout" template="/WEB-INF/tiles/templates/baseLayout.jsp"> 
     <put-attribute name="title" value="Sample Title" /> 
     <put-attribute name="heading" value="" /> 
     <put-attribute name="tagline" value="" /> 
     <put-attribute name="navigation" value="/WEB-INF/tiles/templates/navigation.jsp" /> 
     <put-attribute name="content" value="" /> 
     <put-attribute name="footer" value="/WEB-INF/tiles/templates/footer.jsp" /> 
    </definition> 

    <definition name="home" extends="baseLayout"> 
     <put-attribute name="title" value="Products" /> 
     <put-attribute name="heading" value="Products" /> 
     <put-attribute name="tagline" value="Available Products" /> 
     <put-attribute name="content" value="/WEB-INF/views/products.jsp" /> 
    </definition> 

    <definition name="products" extends="baseLayout"> 
     <put-attribute name="title" value="Products" /> 
     <put-attribute name="heading" value="Products" /> 
     <put-attribute name="tagline" value="Available Products" /> 
     <put-attribute name="content" value="/WEB-INF/views/products.jsp" /> 
    </definition> 

    <definition name="product" extends="baseLayout"> 
     <put-attribute name="title" value="Product" /> 
     <put-attribute name="heading" value="Products" /> 
     <put-attribute name="tagline" value="Product" /> 
     <put-attribute name="content" value="/WEB-INF/views/product.jsp" /> 
    </definition> 

    <definition name="addProduct" extends="baseLayout"> 
     <put-attribute name="title" value="Products" /> 
     <put-attribute name="heading" value="Products" /> 
     <put-attribute name="tagline" value="Product" /> 
     <put-attribute name="content" value="/WEB-INF/views/addProduct.jsp" /> 
    </definition> 

    <definition name="login" extends="baseLayout"> 
     <put-attribute name="title" value="Login" /> 
     <put-attribute name="heading" value="Login" /> 
     <put-attribute name="tagline" value="Enter your Credentials" /> 
     <put-attribute name="content" value="/WEB-INF/views/login.jsp" /> 
    </definition> 

    <definition name="cart" extends="baseLayout"> 
     <put-attribute name="title" value="Shpping Cart" /> 
     <put-attribute name="heading" value="Cart" /> 
     <put-attribute name="tagline" value="your shopping cart" /> 
     <put-attribute name="content" value="/WEB-INF/views/cart.jsp" /> 
    </definition> 

    <definition name="collectCustomerInfo" extends="baseLayout"> 
     <put-attribute name="title" value="Customer Details" /> 
     <put-attribute name="heading" value="Customer Details" /> 
     <put-attribute name="content" value="/WEB-INF/flows/checkout/collectCustomerInfo.jsp" /> 
    </definition> 

    <definition name="collectShippingDetail" extends="baseLayout"> 
     <put-attribute name="title" value="Shipping Details" /> 
     <put-attribute name="heading" value="Shipping Details" /> 
     <put-attribute name="content" value="/WEB-INF/flows/checkout/collectShippingDetail.jsp" /> 
    </definition> 

    <definition name="orderConfirmation" extends="baseLayout"> 
     <put-attribute name="title" value="Order Confirmation" /> 
     <put-attribute name="heading" value="Order Confirmation" /> 
     <put-attribute name="content" value="/WEB-INF/flows/checkout/orderConfirmation.jsp" /> 
    </definition> 

    <definition name="InvalidCartWarning" extends="baseLayout"> 
     <put-attribute name="title" value="Invalid Cart" /> 
     <put-attribute name="heading" value="Invalid Cart" /> 
     <put-attribute name="content" value="/WEB-INF/flows/checkout/InvalidCartWarning.jsp" /> 
    </definition> 

    <definition name="thankCustomer" extends="baseLayout"> 
     <put-attribute name="title" value="Thank you" /> 
     <put-attribute name="heading" value="Thank you" /> 
     <put-attribute name="content" value="/WEB-INF/flows/checkout/thankCustomer.jsp" /> 
    </definition> 

</tiles-definitions> 

マイbaseLayout.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 


<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 

<title><tiles:insertAttribute name="title" /></title> 

     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 

<link href="http://getbootstrap.com/examples/jumbotron/jumbotron.css" rel="stylesheet"> 

</head> 

<body> 

    <div class="container"> 
     <div class="header"> 
      <ul class="nav nav-pills pull-right"> 
       <tiles:insertAttribute name="navigation" /> 
      </ul> 
      <h3 class="text-muted">Trading Cards</h3> 
     </div> 

     <div class="jumbotron"> 
      <h1> 
       <tiles:insertAttribute name="heading" /> 
      </h1> 
      <p> 
       <tiles:insertAttribute name="tagline" /> 
      </p> 
     </div> 

     <div class="row"> 
      <tiles:insertAttribute name="content" /> 
     </div> 

     <div class="footer"> 
      <tiles:insertAttribute name="footer" /> 
     </div> 

    </div> 
</body> 
</html> 

また、私はちょうどことを指摘しますすべての<tiles:insertAtrribute name="..." />タグは私に警告を与えています。これに関する助言やアドバイスは大いにありがとうございます

答えて

0

タイルビューリゾルバを設定しましたか?そうでない場合は、Javaの設定のために、それがXMLのビューリゾルバ

のチェーンの最初のビューを解決するためには、この

<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver"> 
<property name="viewClass"> 
    <value>org.springframework.web.servlet.view.tiles3.TilesView</value> 
</property> 
ようにする必要があり、1にその順序を設定し、この

@Bean 
public TilesViewResolver tilesViewResolver() { 
    TilesViewResolver tileResolver = new TilesViewResolver(); 
    tileResolver.setOrder(1); 
    return tileResolver; 
} 

のようなものであることをやってみてください

また、XMLでorderプロパティを設定する必要があります。

+0

私は既にXML Bean設定を持っています。私はJavaの設定を持っていません。実際に私は実際にはJavaの設定ファイルを持っていません。 –

+0

事実、私はあなたが同じことをやっているかのどちらか一方しか必要としていないことを知っています。だから私のタイルリゾルバが設定されている –

+0

あなたは最高に設定しましたか? –

0

これはしばらく前のことでしたが、他の誰かがこれを経験した場合に私は答えてくれると思いました。

定義ファイルからWEB-INFを削除すると、問題が解決すると思います。 Apache Tiles tutorial

<definition name="baseLayout" template="/tiles/templates/baseLayout.jsp"> 
    <put-attribute name="title" value="Sample Title" /> 

、定義のどれも/WEB-INFフォルダ内で検索されるテンプレートを持っていません。あなたのテンプレートは存在しなかった/WEB-INF/WEB-INF/tiles/templates/baseLayout.jspに見つかるようにしようとしていたと思います。