2013-07-03 5 views
3

Получение класса не Found исключение для DispatcherServlet при рендеринге index.jsp, который находится в WEB-CONTENT/WEB-INF/JSP/index.jspГде точное местоположение файла конфигурации spring и web.xml?

Ниже приведены как структурирована проект.

  1. web.xml находится под WEB-контентом.
  2. abc - это имя моего диспетчерского сервлета. Таким образом, конфигурационным файлом будет abc-servlet.xml, который будет содержать тег bean со всеми указанными пространствами и схемами .
  3. Где я должен поместить файл abc-servlet.xml? Должно ли оно находиться в папке классов или где находится web.xml?
  4. Является ли возникшее исключение из-за расположения конфигурационного файла пружины?
  5. Кроме того, что, если я поместил конфигурационный файл в другое место, как я могу сообщить проекту, что он находится на этом конкретном пути в проекте?

Я использую контроллер, управляемый аннотациями, в проекте smaple.

ответ

3

web.xml помещается под WEB-INF, а затем в том, что вы можете обратиться ваш пружинный XML, как это:

<servlet> 
    <servlet-name>myservlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/abc-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    <async-supported>true</async-supported> 
</servlet> 
6

Из документации:

После инициализации DispatcherServlet, Spring MVC выглядит для файл с именем [servlet-name] -servlet.xml в каталоге WEB-INF вашего веб-приложения и создает там определенные компоненты, переопределяя определения любых фаз, определенных w с тем же именем в глобальной области .

Так размещая abc-servlet.xml в WEB-INF должен позволять диспетчеру сервлет подобрать конфигурацию.

Если вы не хотите, чтобы ваш диспетчер-сервлет использовал имя по умолчанию или хотел, чтобы он находился в другом каталоге, кроме WEB-INF, вы должны указать эту конфигурацию в web.xml. Расположение и имя конфигурации диспетчерских сервлеты могут быть изменены путем установки contextConfigLocation инициализации-параметров в DispatcherServlet

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>WEB-INF/spring/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

Эта информация может быть найдена в Spring Documentation

+0

@JavaDev ли это поможет решить проблему? –

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