Не удается развернуть приложение Spring в Websphere
Я разрабатывал приложение для Tomcat на этапе разработки. По мере продвижения вперед мой клиент хочет быть развернутым в веб-сфере. Я пытаюсь сделать это на WebSphere 8.5, но по какой-то причине у меня возникают проблемы. Tomcat легко, я просто бросаю на войне, и все работает так, как должно. Websphere - это другая история. Я продолжаю получать следующую ошибку, когда я пытаюсь поразить мое приложение:
Error 404: SRVE0190E: File not found: {0}
Я проводил некоторые исследования, и, кроме одной строки ниже, я не заметил ничего странного в журналах. Консоль администратора говорит, что приложение работает без проблем.
SRVE0292I: Servlet Message - [app#app.war]:.No Spring WebApplicationInitializer types detected on classpath
Мое приложение настроено с использованием файлов Java Config вместо традиционного XML, и я полагаю, что это часть проблемы?
Я нашел сообщение в блоге, в котором говорилось о некоторых настройках сервера, которые нужно было применить. Я пробовал те безуспешно:
com.ibm.ws.webcontainer.mapFiltersToAsterisk=true
com.ibm.ws.webcontainer.removetrailingservletpathslash=true
com.ibm.ws.webcontainer.invokeFiltersCompatibility=true
Я в растерянности, у кого-нибудь есть идеи?
Из-за некоторого продолжения я опубликую свои web.xml и WebappInitializer:
@Order(2)
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {ApplicationConfig.class, DataSourceConfig.class, JpaConfig.class, SecurityConfig.class, MailConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] {WebMvcConfig.class};
}
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceEncoding(true);
return new Filter[] {characterEncodingFilter};
}
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setInitParameter("defaultHtmlEscape", "true");
registration.setInitParameter("spring.profiles.active", "default");
}
}
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="false">
<!-- Map all errors to Spring MVC handler method. See CustomErrorController.generalError() -->
<error-page>
<location>/generalError</location>
</error-page>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<display-name>eua</display-name>
</web-app>