2012-06-23 3 views
0

웹 앱이 있습니다. JSF2 프레임 워크를 사용하고 있습니다. 내 문제는 구글 앱 엔진 서버에서이 프로젝트를 실행할 때 시작되었다.Google App Engine Jsf2 환영 파일 목록이 작동하지 않습니다.

<welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

이 부분의 web.xml 파일은 올바른 출력을 제공하지 않습니다. localhost : 8080을 입력하면 index.html 페이지를 찾을 수 없습니다. 뭐가 잘못 되었 니? 도와주세요. 전체 web.xml 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://java.sun.com/xml/ns/javaee" 

     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     id="WebApp_ID" version="2.5"> 
    <display-name> 
     Wildstar Technologies, LLC. Google AppEngine JSF 2.0 Template 
    </display-name> 
    <description> 
     Template JSF 2.0 application configured to run on the Google 
     AppEngine for Java. 
    </description> 

    <context-param> 
     <param-name>primefaces.THEME</param-name> 
     <param-value>cupertino</param-value> 
    </context-param> 
    <context-param> 
     <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name> 
     <param-value>/WEB-INF/pretty-config.xml</param-value> 
    </context-param> 
    <servlet> 
     <display-name>Remote API Servlet</display-name> 
     <servlet-name>RemoteApiServlet</servlet-name> 
     <servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>RemoteApiServlet</servlet-name> 
     <url-pattern>/remote_api</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <servlet-name>ShowImage</servlet-name> 
     <servlet-class>mucayufa.web.jsf2.ferizliAdmin.beans.ShowImage</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>ShowImage</servlet-name> 
     <url-pattern>/show</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <servlet-name>Upload</servlet-name> 
     <servlet-class>mucayufa.web.jsf2.ferizliAdmin.beans.UploadDocument</servlet-class> 
    </servlet> 

    <servlet> 
     <servlet-name>Serve</servlet-name> 
     <servlet-class>mucayufa.web.jsf2.ferizliAdmin.beans.Serve</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Upload</servlet-name> 
     <url-pattern>/upload</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
     <servlet-name>Serve</servlet-name> 
     <url-pattern>/serve</url-pattern> 
    </servlet-mapping> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern><!--*/--> 
    </filter-mapping> 
    <filter> 
     <filter-name>PrimeFaces FileUpload Filter</filter-name> 
     <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>PrimeFaces FileUpload Filter</filter-name> 
     <servlet-name>Faces Servlet</servlet-name> 
    </filter-mapping> 

    <!-- Processes application requests --> 
    <servlet> 
     <servlet-name>appServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/applicationContext.xml</param-value> 
     </init-param> 

    </servlet> 

    <servlet-mapping> 
     <servlet-name>appServlet</servlet-name> 
     <url-pattern>/*</url-pattern><!--*/--> 
    </servlet-mapping> 

    <filter> 
     <filter-name>encodingFilter</filter-name> 
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
     <init-param> 
      <param-name>forceEncoding</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>encodingFilter</filter-name> 
     <url-pattern>/*</url-pattern><!--*/--> 
    </filter-mapping> 

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

    <!-- ***** Designate server-side state saving. ***** --> 
    <context-param> 
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
     <param-value>client</param-value> 
    </context-param> 

    <context-param> 
     <param-name>com.sun.faces.expressionFactory</param-name> 
     <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
    </context-param> 
    <!-- Disable use of threading for single-threaded environments such as 
the Google AppEngine. --> 
    <context-param> 
     <param-name>com.sun.faces.enableThreading</param-name> 
     <param-value>false</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Production</param-value> 
    </context-param> 
    <!-- ***** Load the JavaServer Faces Servlet ***** --> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <!-- ***** Load the JavaServer Faces Servlet ***** --> 

    <!-- Map these files with JSF --> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern><!--*/--> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.jsf</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.faces</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
    <!-- ***** Specify session timeout of thirty (30) minutes. ***** --> 
    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 
<welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

답변

1

이것이 문제가 될 수 있는지 확실하지는 않지만 내 경험으로는 때로는 devmode에서 정적 리소스를 찾을 수 없습니다. 그것은 여기에 명시된 것 동안

"기본적으로 WAR의 모든 파일은 정적 파일 및 리소스 파일을 모두로 취급된다"정적 리소스도 그들이해야하지만 dev에 모드에서 해결하지 않는다 https://developers.google.com/appengine/docs/java/config/appconfig#Static_Files_and_Resource_Files, 나는 확실히 경험 한 경우 생산에서.

내가 말하고자하는 것은 appengine-web.xml에 <에 path = "**. html"/ include가 포함되어 있지 않다는 것입니다. 예를 들어 html 파일은 정적 리소스로 처리되지 않습니다.

appengine-web.xml에 명시 적으로 < include> 매핑을 시도하고 dev 서버가 해당 파일을 처리하지 못하기 때문에 와일드 카드 경로가 파일을 확인할 수 없음을 확인하십시오.

+0

당신은 완벽합니다 :) appengine-web.xml에서 의 매핑을하면 효과적입니다. 정말 고맙습니다:) – olyanren