Weblogic 10.3.0, Struts, Alfresco, Sitemesh und Tuckey’s URLRewritingFilter

Post date: May 29, 2012 2:34:47 PM

Mächtig, aber auch knifflig um es auf Weblogic einzustellen. Ich will mich bei allen die ihre Fragen und Bemühungen bezüglich dieser Mischung von Sitemesh Tuckey’s URLRewriteFilter Technologien auf verschiedene Forums abgeschickt haben, bedanken. Dennoch, war ich verdutzt weil die Anwendung zunächst auf Tomcat erfolgreich funktioniert hat, aber das war auf Weblogic nicht der Fall.

Keine konkrete Erklärungen konnten für Weblogic gefunden werden. Was in meiner Testumgebung passiert war, war dass der Sitemesh Decorator einfach verlorengegangen war, kein eindeutiger Fehler war in den Logdateien vorhanden.

Deshalb will ich “die goldenen Regeln” die notwendig sind, um die Anwendung erfolgreich auf Weblogic zu funktionieren, hier aufschreiben:

· Folgen Sie die Reihenfolge der <filter-mapping> in web.xml wie sie unten präsentiert werden.

· Bedenken Sie den REQUEST Dispatcher für den URLRewriteFilter.

· Bedenken Sie die INCLUDE und FORWARD Dispatcher für den SitemeshFilter.

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>CP</display-name>

<!-- Quartz Listener for initialization -->

<listener>

<listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>

</listener>

<context-param>

<description>The logos path in consular_protection alfresco web project</description>

<param-name>logos.folder.path</param-name>

<param-value>/consular_protection/logos</param-value>

</context-param>

<listener>

<description>Configure Listener</description>

<listener-class>eu.ec.jls.cp.listener.ConfigureListener</listener-class>

</listener>

<!-- FILTERS -->

<filter>

<filter-name>CharacterEncodingFilter</filter-name>

<filter-class>eu.ec.jls.cp.web.CharacterEncodingFilter</filter-class>

</filter>

<filter>

<filter-name>struts-cleanup</filter-name>

<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

</filter>

<filter>

<filter-name>sitemesh</filter-name>

<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>

</filter>

<filter>

<filter-name>struts</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter>

<filter-name>UrlRewriteFilter</filter-name>

<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>

<init-param>

<param-name>confReloadCheckInterval</param-name>

<param-value>-1</param-value>

</init-param>

<init-param>

<param-name>logLevel</param-name>

<param-value>DEBUG</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>struts-cleanup</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>FORWARD</dispatcher>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

<filter-mapping>

<filter-name>sitemesh</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>INCLUDE</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

<filter-mapping>

<filter-name>UrlRewriteFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>FORWARD</dispatcher>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

<filter-mapping>

<filter-name>struts</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>FORWARD</dispatcher>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

<servlet>

<servlet-name>jspSupportServlet</servlet-name>

<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<servlet-name>jcaptcha</servlet-name>

<servlet-class>eu.ec.jls.cp.web.ImageCaptchaServlet</servlet-class>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>jcaptcha</servlet-name>

<url-pattern>/jcaptcha.jpg</url-pattern>

</servlet-mapping>

<!-- Welcome file lists -->

<welcome-file-list>

<welcome-file>welcome.html</welcome-file>

</welcome-file-list>

<mime-mapping>

<extension>ico</extension>

<mime-type>image/x-icon</mime-type>

</mime-mapping>

</web-app>