Spring MVC 3.1.1 Внешние ресурсы не работают - PullRequest
1 голос
/ 07 февраля 2020

У меня проблема с отображением внешних ресурсов. В частности, в моем приложении-сервлете. xml, у меня есть следующее:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
   <property name="cookieName" value="lang"/>
   <property name="defaultLocale" value="en"/>
</bean>
<mvc:interceptors>
   <mvc:interceptor>
      <mvc:mapping path="/**"/>
      <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
         <property name="paramName" value="lang"/>
      </bean>
   </mvc:interceptor>
</mvc:interceptors>

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="file:C:/Users/username/Desktop/translations/translation"/>
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
   <property name="messageConverters">
      <array>
         <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes" value="text/plain;charset=UTF-8"/>
         </bean>
      </array>
   </property>
</bean>

<mvc:resources mapping="/content/**" location="file:C:/Users/username/Desktop/content/"/>
<!--    <mvc:default-servlet-handler/>-->
<mvc:annotation-driven/>

Мой веб. xml

<servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

Я пробовал любую возможную комбинацию, а также с и без <mvc:default-servlet-handler/>, но когда я пытаюсь перейти на страницу с внешним ресурсом, я вижу на вкладке Сеть моего браузера, что приложение возвращает 200, но контент не загружен.

Я добавил точку останова в класс ResourceHttpRequestHandler, и я показываю, что метод setLocations(List<Resource> locations) вызывается при запуске, но handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException не вызывается, когда я пытаюсь загрузить содержимое, например, http://localhost:8080/app/content/testImage.png,

Журналы также ничего не предлагают.

Я также пытался сопоставить внешнее местоположение через сервер Tomcat. xml, но безрезультатно.

Есть идеи, почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...