Spring App kann nicht in Websphere bereitgestellt werden

Ich habe in der Entwicklungsphase eine Anwendung für Tomcat entwickelt. Während wir voranschreiten, möchte mein Client für Websphere bereitgestellt werden. Ich versuche dies in WebSphere 8.5 zu tun, aber aus irgendeinem Grund habe ich Probleme. Tomcat ist einfach, ich bin gerade im Krieg und alles funktioniert wie es sollte. Websphere ist eine andere Geschichte. Ich erhalte immer wieder die folgende Fehlermeldung, wenn ich versuche, meine Anwendung zu starten:

Error 404: SRVE0190E: File not found: {0}

Ich habe ein paar Nachforschungen angestellt und sehe, abgesehen von der einen Zeile unten, nichts Merkwürdiges in den Protokollen. Die Administratorkonsole meldet, dass die Anwendung ohne Probleme ausgeführt wird.

SRVE0292I: Servlet Message - [app#app.war]:.No Spring WebApplicationInitializer types detected on classpath

Meine Anwendung wird mithilfe von Java Config-Dateien anstelle von herkömmlichem XML konfiguriert, und ich vermute, dass dies ein Teil des Problems ist.

In einem Blog-Beitrag wurde darauf hingewiesen, dass einige Servereinstellungen angewendet werden mussten. Ich habe die ohne Erfolg ausprobiert:

com.ibm.ws.webcontainer.mapFiltersToAsterisk=true
com.ibm.ws.webcontainer.removetrailingservletpathslash=true
com.ibm.ws.webcontainer.invokeFiltersCompatibility=true

Ich bin ratlos, hat jemand irgendwelche Ideen?

Aufgrund einiger Folgemaßnahmen werde ich meine web.xml und meinen WebappInitializer veröffentlichen:

@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>

Antworten auf die Frage(7)

Ihre Antwort auf die Frage