저는 약간의 둘러보기가 있었고, 내가 만났던 시나리오를 가진 게시물을 찾지 못하는 것 같습니다.스프링 프레임 워크 4 & Apache Tiles 3 - 그런 정의 오류가 없습니다.
저는 스프링 MVC 4와 아파치 타일 3을 사용하는 작은 웹 앱을 작성했습니다. 애플리케이션의 모양과 느낌을 일정하게 유지하기 위해 마스터 페이지 템플릿을 만들고 싶었 기 때문에 아파치 타일을 사용하고 있습니다. 나는 이클립스에서 이것을 개발하고 IDE를 통해 아파치 8 서버에서 실행했다. 이것은 모두 일식을 통해 절대적으로 잘 실행되었고 templating은 잘 작동하고있었습니다.
나는 .war 파일로 프로젝트를 수출하고 타일 템플릿 사용하는 페이지 보려고 할 때 IDE의 나는 다음과 같은 스택 추적을 수신하고 외부와 동일한 아파치 8 서버에 그것을 실행 한:
을2: <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
3: <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
4: pageEncoding="ISO-8859-1"%>
5: <tiles:insertDefinition name="defaultTemplate">
6: <tiles:putAttribute name="body">
7: <div class="body">
8: Hi <c:out value="${uacc_fname}"></c:out> <c:out value="${uacc_sname}"></c:out> welcome to the home page!!
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1221)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.SouthC.Messwich.WebApp.FilterAuthCheck.doFilter(FilterAuthCheck.java:80)
root cause
org.apache.tiles.definition.NoSuchDefinitionException: Unable to find the definition 'defaultTemplate'
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:218)
org.apache.tiles.template.InsertDefinitionModel.renderDefinition(InsertDefinitionModel.java:132)
org.apache.tiles.template.InsertDefinitionModel.execute(InsertDefinitionModel.java:99)
org.apache.tiles.jsp.taglib.InsertDefinitionTag.doTag(InsertDefinitionTag.java:254)
org.apache.jsp.webapp.home_jsp._jspx_meth_tiles_005finsertDefinition_005f0(home_jsp.java:105)
org.apache.jsp.webapp.home_jsp._jspService(home_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1221)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.SouthC.Messwich.WebApp.FilterAuthCheck.doFilter(FilterAuthCheck.java:80)
org.apache.jasper.JasperException: An exception occurred processing JSP page /webapp/home.jsp at line 5
내가 지정한 위치에서 서버를 제거하면 서버가 tiles.xml 정의 파일을 읽을 수 있음을 확인했습니다. 시작시 다른 오류가 발생합니다. 다음은 내 구성 파일은 다음과 같습니다 이것에 어떤 도움이 많이 appriciated 될 것이다
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Messwich</display-name>
<servlet>
<servlet-name>testWebApp</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testhWebApp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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 id="defaultTemplate" name="defaultTemplate" template="/template/defaultTemplate.jsp">
<put-attribute id="header" name="header" value="/template/header.jsp" />
<put-attribute id="footer" name="footer" value="/template/footer.jsp" />
</definition>
</tiles-definitions>
tiles.xml
servlet.xml에
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="org.test.WebApp"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/tiles/tiles.xml</value>
</list>
</property>
</bean>
<mvc:resources mapping="/resources/**" location="/resources/" />
</beans>
web.xml에, 나는 IDE를 통해 작동하는 이유는 모르지만 내보낼 때는 확실하지 않습니다.
미리 감사드립니다.
필
안녕하세요, 귀하의 회신에 감사드립니다. IDE에서 두 가지 방법 모두 시도했지만, .war 파일로 앱을 배포 할 때는 그렇지 않습니다. 정말 그물에 대한 답변을 찾는 데 어려움을 겪고 있습니다. 어떤 아이디어? – Phil1