У меня есть веб-приложение Vaadin с интеграцией безопасности весов для аутентификации. Конфигурация Vaadin сервлета довольно прост:Как обслуживать статические ресурсы из приложения Vaadin/Spring?
<servlet>
<servlet-name>Vaadin Application Servlet</servlet-name>
<servlet-class>com.example.SpringApplicationServlet</servlet-class>
<init-param>
<param-name>applicationBean</param-name>
<param-value>mainApplication</param-value>
</init-param>
<init-param>
<param-name>widgetset</param-name>
<param-value>com.example.widgetset.CustomWidgetSet</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
сервлет инициализирует Spring контекст и возвращает приложение Vaadin. Кроме того, я настроил безопасность для этого и иметь форму пользовательского входа в систему, сконфигурированный так:
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/jsp/login.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>login_error</servlet-name>
<jsp-file>/jsp/loginError.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>login_error</servlet-name>
<url-pattern>/login_error</url-pattern>
</servlet-mapping>
Форма Войти стилизовано с внешним CSS и есть также некоторые изображения. В основном изображения расположены в/jsp/img и таблице стилей в файле /jsp/login.css. Таким образом, структура WAR выглядит следующим образом:
- /JSP
- /META-INF
- /Vaadin
- /WEB-INF загружается
Ни изображения, ни CSS, потому что очевидно, что все эти запросы сопоставляются с сервлетом ваадин. Как я могу определить каталог статических ресурсов, который не будет обслуживаться сервлетом Vaadin? Я пробовал весенний mvc: ресурсы, но это не сработало. Спасибо за помощь.
Bye, Filip
Я понял это. Хотя это довольно обходной путь. Я сопоставил сервлет приложения Vaadin с чем-то вроде/app/* вместо/* (помните, что в этом случае вам также нужно сопоставить тот же сервлет в/VAADIN/*). С этой конфигурацией я могу получить доступ к каталогу jsp из моего webapp, и все работает нормально. Я удалил всю конфигурацию Spring Resources, так как это просто не сработало.
Так что еще раз, я все еще довольно не очень удобен с этим решением и предпочитаю, чтобы мой RESOURCES был настроен другим способом, но клиент счастлив :). Если у кого-то есть правильное решение, я был бы признателен за его чтение.
В каком классе работает 'SpringApplicationServlet'? –
Он расширяет com.vaadin.terminal.gwt.server.AbstractApplicationServlet –
Попробуйте сыграть с отображением URL ([Отображение сервлета/vs /*](http://stackoverflow.com/a/4140659/267197)) или отображение статического ресурс ([Servlet для обслуживания статического контента] (http://stackoverflow.com/a/3582215/267197)). –