2012-03-27 3 views
1

Я получаю следующее сообщение об ошибке в моих журналах:Spring 3.1.1 SAXParseException с MVC: ресурсы

Вызванный: org.xml.sax.SAXParseException: CVC-комплекс-type.2.4.c: Соответствующий шаблон является строгим, но для элемента 'mvc: resources' не найдено объявления.

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

Ошибка 500: javax.servlet.ServletException: SRVE0207E: Uncaught исключение инициализации создан сервлет

Здесь моя web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    id="WebApp_ID" 
    version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <display-name>MyAwesomeApp</display-name> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
     <welcome-file>index.htm</welcome-file> 
     <welcome-file>index.jsp</welcome-file> 
     <welcome-file>default.html</welcome-file> 
     <welcome-file>default.htm</welcome-file> 
     <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

Вот моя весна-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/mvc/spring-mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
    <context:component-scan 
     base-package="org.myapp.controllers" /> 
    <bean 
     id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property 
      name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property 
      name="prefix" 
      value="/WEB-INF/views/" /> 
     <property 
      name="suffix" 
      value=".jsp" /> 
    </bean> 
    <mvc:resources 
     mapping="/resources/**" 
     location="/resources/" /> 
</beans> 

Что я делаю неправильно? Если я вынесу тег <mvc:resources, появится мое приложение, но его CSS не загружается.

Редактировать: Возможно, у меня есть другие проблемы, потому что теперь я не получаю эту ошибку, хотя мое приложение не появляется - я просто получаю 404. Я получаю это в журнале Теперь, который выглядит многообещающим:

SimpleUrlHand Я org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler Подключенного URL путь [/ ресурсы/**] на обработчик «org.springframework.web.servlet.resource.ResourceHttpRequestHandler # 0 '

+0

Первое исключение, которое вы публикуете, предполагает, что существует проблема с анализом xml-файла 'spring-servlet.xml' –

ответ

2

Вы сделали ошибку в декларации пространств имен в spring-servlet.xml. Пожалуйста, измените:

xsi:schemaLocation=" 
(...) 
http://www.springframework.org/schema/mvc/spring-mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
(...)" 

к:

xsi:schemaLocation=" 
(...) 
http://www.springframework.org/schema/mvc/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
(...)" 

Поскольку вы объявили

xmlns:mvc="http://www.springframework.org/schema/mvc" 

не (...)/schema/spring-mvc.

0

Я закончил с this tutorial, создав новый проект шаблона Spring, используя шаблон проекта Spring MVC. Затем я создал EAR (новый проект Enterprise Application Project в Rational Application Developer), который включал мой новый проект Spring MVC. Развернутый EAR для моего WAS 7, все в порядке. Я поместил свои файлы CSS и JavaScript в src/main/webapp/resources и связался с ними в своих представлениях с помощью resources/stylesheet.css. Проект шаблона поставляется с уже настроенным каталогом ресурсов.

я заметил, что его контекст файла, на который ссылается http://www.springframework.org/schema/mvc в обоих Xmlns и xsi:schemaLocation не http://www.springframework.org/schema/mvc/spring-mvc как я сделал в xsi:schemaLocation так я думаю Piotrek's answer, вероятно, правильно.

Смежные вопросы