Glassfish上下文根问题

时间:2011-05-09 11:22:33

标签: java jsf-2 glassfish-3

我正在尝试在我的glassfish服务器的根目录中部署JSF-2应用程序,以便http://localhost:8080/指向我的欢迎页面。出于某种原因,在尝试配置时,http://localhost:8080/会导致glassfish默认欢迎页面,http://localhost:8080//会导致我的。如果我去http://localhost:8080/<welcome-page>它是有效的,所以context-root似乎在大多数情况下都有效,它只是一个错误映射的欢迎页面。

如何解决这个问题?

sun-web.xml中:

<sun-web-app error-url="">
  <context-root>/</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</sun-web-app>

web.xml(减去安全限制和其他不相关的东西)

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <filter-mapping>
        <filter-name>AlreadyLoggedInRedirectFilter</filter-name>
        <url-pattern>/login.jsf</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>AlreadyLoggedInRedirectFilter</filter-name>
        <filter-class>com.xdin.competence.jsf.util.AlreadyLoggedInRedirectFilter</filter-class>
    </filter>
    <session-config>
        <session-timeout>60</session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsf</welcome-file>
    </welcome-file-list>
    <error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/viewExpired.jsf</location>
    </error-page>
    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/login.jsf</form-login-page>
            <form-error-page>/login.jsf</form-error-page>
        </form-login-config>
    </login-config>

作为旁注,应用程序是服务器的默认应用程序,我只是希望它部署在根目录中。

1 个答案:

答案 0 :(得分:3)

这是来自glassfish的特殊'特征'。请查看How do you deploy a WAR that's inside an EAR as the root (/) context in Glassfish?

中的答案 顺便问一下:您使用的是哪种版本的玻璃鱼?您是否可以将应用程序更改为默认应用程序?