2013-03-04 4 views
12

Это моя web.xml:Почему FacesServlet не может иметь URL-адрес/*.?

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Когда я перейти к:

http://localhost:8080/LearningRoot/index.xhtml 

Я могу видеть страницу просто отлично, но когда я перейти к:

http://localhost:8080/LearningRoot/ 

I получить сообщение об ошибке:

An Error Occurred:

The FacesServlet cannot have a url-pattern of /*. Please define a different url-pattern.

Но почему?

И это мой радушны файл:

<welcome-file-list> 
    <welcome-file>/index.xhtml</welcome-file> 
</welcome-file-list> 
+0

вы пытались /*.* –

+2

@ KeremBaydoğan вы пытались это в режиме реального веб-приложения Java? –

+0

nope :) Это было просто предположение :) –

ответ

18

Потому что это будет означать Все, что когда-либо ударяется, что контекстно-корень будет обрабатываться FacesServlet, требование о том, FacesServlet уже знает, что это не могло выполнить (Это, очевидно, не имеет смысла).

Для достижения картирование вы собираетесь, использовать .xhtml отображение на FaceServlet

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
+0

Вы уверены? Потому что он работает, если он просто/вместо/* –

+2

@KorayTugay '/' будет по умолчанию указывать файл 'index' на стандартную обработку webapp. '/ *' - двусмысленная ссылка – kolossus