Bereitstellung von Spring MVC auf Oracle WebLogic Server

1- Das Zweck für das Dokument

See Also:
Im Dokument leite ich Sie bei der  Einsatz einer Applikation von  Spring MVC auf  Oracle WebLogic Server an. Das Dokument wird nach der Quelle ... geschrieben
  • Spring MVC 4.x

  • Oracle WebLogic Server 12c (12.2.1.1.0).

Stellen Sie sicher, dass Sie WebLogic Server installiert haben. Wenn nicht, können Sie die Anleitung der Installation bei... lesen
Im Dokument packe ich eine Applikation von Spring MVC ein, die auf die Eclipse geschrieben wird und auf   WebLogic Server eingesetzt wird
Beachten Sie, wenn Sie Spring MVC auf dem anderen Server wie  Tomcat, Glassfish einsetzen, können Sie nichts auf Ihre Source Code ändern. Allerdings wenn Sie auf WebLogic einsetzen, sollen Sie einige Konfigurationsfile in die Source Code vor dem Einpacken einfügen 
Ich setze die Applikation "Hello World Spring MVC" auf  WebLogic ein. Die Applikation können Sie bei... sehen
Oder die Source Code herunterladen

2- Die Konfiguration ins Projekt einfügen

Das ist die Image des Projekt nach der Fertigung
weblogic.xml in  WEB-INFeinfügen. In die File weblogic.xml sollen Sie contextPath (context-root) für die Applikation konfigurieren. Hier stelle ich   /springmvc. Sie können  / stellen wenn Sie die leere contextPath benutzen
/WEB-INF/weblogic.xml
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app>
    <context-root>/springmvc</context-root>
    <container-descriptor>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
    </container-descriptor>
</weblogic-web-app>

3- Die Applikation einpacken

Maven Clean:
Maven Install:
Die File war wird in dem Ordner 'target' des Projekt erstellt 

4- Auf Weblogic einsetzen

Beachten Sie: Beim Treffen eines Fehler in einem Einsatzschritt sehen Sie das Anhang am Ende des Dokument
Ihre Applikation wird auf WebLogic eingesetzt und sie ist in der Modus von "prepared" (vorbereitet). Sie sollen sie noch aktivieren
Schließen Sie auf um zu ändern
Start apps:
Ihre Applikation wird erfolgreich aktiviert

Test apps:

5- Die Einsatz entfern

Wenn Sie wieder einsetzen oder entfernen (undeloy) möchten, sollen Sie zuerst die Applikation stoppen 

6- Die Fehler beim Einsatz

Bei der Einsatz auf WebLogic bekommen Sie den Fehler wie folgenden
java.io.FileNotFoundException:
Could not open ServletContext resource [/WEB-INF/SpringDispatcher-servlet.xml]
Der Grund des Fehler ist, dass Ihr Projekt Spring MVC die Annotation zur Konfiguration (Ohne die Benutzung von XML) benutzen, aber die Applikation  liest noch die Konfiguration aus der File  XML ( SpringDispatcher-servlet.xml), Die File existiert nicht auf Ihrem Projekt.

Sie sollen auf SpringWebAppInitializer konfigurieren um zu guarantieren, dass die Applikation die oben XML File liest
// Add code:

dispatcher.setInitParameter("contextClass", appContext.getClass().getName());

servletContext.addListener(new ContextLoaderListener(appContext));
Die volle Code sehen
SpringWebAppInitializer.java
package org.o7planning.hellospringmvc.config;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;

public class SpringWebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContextConfig.class);

        // Dispatcher Servlet
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher",
                new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");

        // IMPORTANT!!
        dispatcher.setInitParameter("contextClass", appContext.getClass().getName());

        // IMPORTANT!!
        servletContext.addListener(new ContextLoaderListener(appContext));

        // UTF8 Charactor Filter.
        FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);

        fr.setInitParameter("encoding", "UTF-8");
        fr.setInitParameter("forceEncoding", "true");
        fr.addMappingForUrlPatterns(null, true, "/*");
    }

        // .........

}