интеграция jsf2.0 и spring 3.1 и hibernate 4.1

я хочу интегрировать jsf2.0 и spring 3.1 и hibernate 4.1. но у tomcat есть ошибка 404: описание Запрошенный ресурс (/jsfspringhiber/page/default.jsf) недоступен. что не так? введите здесь описание изображенияНиже приведен мой файл 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" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <display-name>jsfspringhiber</display-name>

  <!-- Add Support for Spring -->
  <listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>
  <listener>
    <listener-class>
        org.springframework.web.context.request.RequestContextListener
    </listener-class>
  </listener>

  <!-- Change to "Production" when you are ready to deploy -->
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>

  <!-- Welcome page -->
  <welcome-file-list>
    <welcome-file>faces/default.xhtml</welcome-file>
  </welcome-file-list>

  <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </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>

</web-app>

person samira    schedule 26.06.2012    source источник
comment
Это не про JSF, Spring или Hibernate. Сообщение об ошибке 404 — это стандартный код ответа HTTP, указывающий, что сервер не смог найти запрошенное. Покажите свой web.xml файл. Проверьте настройки Tomcat.   -  person Andrei Kapelchik    schedule 26.06.2012
comment
@AndreyKapelchik, я добавляю свой web.xml. какие настройки tomcat я должен проверить?   -  person samira    schedule 26.06.2012
comment
@AndreyKapelchik, я добавил косую черту перед лицами в списке приветственных файлов. но это не решило.   -  person samira    schedule 26.06.2012


Ответы (3)


Я предполагаю, что вы используете eclipse, я думаю, что у вас есть проблема с развертыванием.

1) проверьте путь развертывания tomcat, чтобы убедиться, что он развернут правильно: workspace/.metadata/plugings/org.eclipse.wst.server.core/tmp0/wtpwebapps. (иногда помогает удаление tmp0, чтобы заставить tomcat повторно развернуться).

2) В свойствах проекта проверьте сборку развертывания и убедитесь, что включены все необходимые файлы.

Это может сработать

person IturPablo    schedule 26.06.2012
comment
я проверил путь развертывания tomcat, он существует, и сборка развертывания имеет два источника: 1. /src 2./webcontent - person samira; 26.06.2012
comment
я удалил temp0 и определил новый сервер, но у меня все еще есть проблема - person samira; 26.06.2012
comment
вы используете maven или что-то подобное? - person IturPablo; 26.06.2012
comment
Вы включили библиотеки веб-приложений в свойства-›java build path-library? - person IturPablo; 26.06.2012
comment
да, я добавил jar-файлы spring hibernate и jsf jar. - person samira; 26.06.2012

Хорошо, если у вас есть шаблон URL-адреса как /faces/* , сервлет Faces будет добавлять перед каждым запросом /faces. Таким образом, вам нужно будет получить доступ к ресурсу как /jsfspringhiber/faces/page/default.xhtml или просто /jsfspringhiber (если файл приветствия указан какfaces/page/default.xhtml).

Обновление: удалите все сопоставления сервлетов и используйте только одно:

<welcome-file-list>
  <welcome-file>default.xhtml</welcome-file>
</welcome-file-list>

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

и поместите файл default.xhtml в каталог WebContent.

Если вы действительно хотите сопоставить все эти шаблоны URL-адресов, посмотрите на этот ответ

person Ravi Kadaboina    schedule 26.06.2012
comment
щелкните правой кнопкой мыши default.xhtml и запустите его на сервере. но когда он запускается, в браузере преобразуется в localhost:7080/jsfspringhiber/default.jsf. - person samira; 26.06.2012
comment
я поместил default.xhtml в корень веб-контента. - person samira; 26.06.2012

я использую мавен. правильный ответ здесь. структура: введите здесь описание изображения

person samira    schedule 02.07.2012