Контекстно-корневая проблема Glassfish - PullRequest
2 голосов
/ 09 мая 2011

Я пытаюсь развернуть приложение JSF-2 в корне моего сервера Glassfish, чтобы http://localhost:8080/ открывал мою страницу приветствия.По какой-то причине при попытке настроить это, http://localhost:8080/ ведет на страницу приветствия по умолчанию, а http://localhost:8080// - на мою.Если я перейду к http://localhost:8080/<welcome-page>, то это работает, так что корень контекста, кажется, работает в большинстве случаев, это просто страница приветствия с каким-то неверным отображением.

Как это исправить?* 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 Ответ

3 голосов
/ 17 июня 2011

это особая «особенность» стеклянной рыбы. Ознакомьтесь с ответами в Как развернуть WAR, находящийся внутри EAR, в качестве корневого (/) контекста в Glassfish?

Кстати: какую версию Glassfish вы используете? Можно ли изменить приложение на приложение по умолчанию?

...