сервер weblogic не обслуживает файлы html, js и css

Я развернул образец приложения Spring Java на сервере weblogic (11g, 10.3.6). У меня есть index.html в корне, и я установил его как файл приветствия в web.xml. Но когда я пытаюсь получить доступ к приложению, я получаю «Ошибка 404 — не найдено». Кроме того, я заметил ту же проблему с файлами js и css.

index.jsp отлично работает в том же месте.

Вот мой web.xml.

<display-name>hello</display-name>

<welcome-file-list>
  <welcome-file>/index.html</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

person vmrao    schedule 06.06.2014    source источник


Ответы (1)


Причиной этого является сопоставление корневого уровня (/) для вашего Spring DispatcherServlet. Все запросы передаются сервлету Spring:

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Я обхожу эту ситуацию, используя *.do для своих контроллеров Spring и обновляя сопоставление сервлета, как указано здесь:

<servlet-mapping>
    <servlet-name>appServlet/servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

Но для этого вам потребуется обновить «вызовы вашего контроллера Spring» с помощью .do в конце URL-адресов.

person Juned Ahsan    schedule 06.06.2014
comment
Спасибо. Это решило проблему. - person vmrao; 06.06.2014
comment
@vmrao Пожалуйста, примите ответ, нажав на галочку слева от моего ответа. Принятие ответа помогает другим пользователям, столкнувшимся с той же проблемой. - person Juned Ahsan; 06.06.2014
comment
Мне нужны были URL-адреса RESTful, поэтому я добавил ‹mvc:default-servlet-handler/› в applicationContext.xml, что позволит сопоставить сервлет-диспетчер с «/» и статическими ресурсами, обслуживаемыми сервлетом контейнеров по умолчанию. - person vmrao; 07.06.2014