2 Replies Latest reply on May 28, 2010 10:51 AM by freemarket

    3.3.3.Final breaks URL resource behavior

    freemarket

      Hello,

       

      Under 3.3.3.CR1, I had the following:

       

      <h:graphicImage value="resource:///images/XXXX_logo.jpg" />

       

      in my layout which correctly resolved to:

       

      <img src="/muni/genesis/qa/images/XXXX_logo.jpg">

       

      Now, in 3.3.3.Final, this resolves to:

       

      <img src="/genesis/spring/a4j/g/3_3_3.Final/images/XXXX_logo.jpg">

       

      which breaks the image.

       

      I don't see anything in release notes (http://goo.gl/2v59) to suggest this behavior should have been altered.

       

      Any quick fix?

       

      Thanks,

      Henry

        • 1. Re: 3.3.3.Final breaks URL resource behavior
          ilya_shaikovsky

          show web.xml

          • 2. Re: 3.3.3.Final breaks URL resource behavior
            freemarket

            web.xml follows (it has not changed with the update to 3.3.3.Final from 3.3.3.CR1 yesterday):

             

            <?xml version="1.0" encoding="ISO-8859-1"?>
            <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">
            <description>carat2 enhancement</description>
            <display-name>genesis</display-name>
            <!-- Spring: All XML listed here will be listened and loaded by Context Root -->
            <context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/config/web-application-config.xml</param-value>
            </context-param>
            <context-param>
              <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
              <param-value>.xhtml</param-value>
            </context-param>
            <!-- Enables special Facelets debug output during development -->
            <context-param>
              <param-name>facelets.DEVELOPMENT</param-name>
              <param-value>true</param-value>
            </context-param>
            <!-- Causes Facelets to refresh templates during development -->
            <context-param>
              <param-name>facelets.REFRESH_PERIOD</param-name>
              <param-value>1</param-value>
            </context-param>
            <context-param>
              <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
              <param-value>TIDY,NONE,NEKO</param-value>
            </context-param>
            <context-param>
              <param-name>org.richfaces.LoadStyleStrategy</param-name>
              <param-value>ALL</param-value>
            </context-param>
            <context-param>
              <param-name>org.richfaces.LoadScriptStrategy</param-name>
              <param-value>DEFAULT</param-value>
            </context-param>
            <context-param>
              <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
              <param-value>false</param-value>
            </context-param>
            <context-param>
              <param-name>org.richfaces.CONTROL_SKINNING</param-name>
              <param-value>enable</param-value>
            </context-param>
            <context-param>
              <param-name>org.ajax4jsf.SKIN</param-name>
              <param-value>muni</param-value>
            </context-param>
            <filter>
              <filter-name>charEncodingFilter</filter-name>
              <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
              <init-param>
               <param-name>encoding</param-name>
               <param-value>UTF-8</param-value>
              </init-param>
              <init-param>
               <param-name>forceEncoding</param-name>
               <param-value>true</param-value>
              </init-param>
            </filter>
            <!-- Spring security -->
            <filter>
              <filter-name>springSecurityFilterChain</filter-name>
              <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
            </filter>
            <filter>
              <display-name>RichFaces Filter</display-name>
              <filter-name>richfaces</filter-name>
              <filter-class>org.ajax4jsf.Filter</filter-class>
            </filter>
            <filter-mapping>
              <filter-name>charEncodingFilter</filter-name>
              <url-pattern>/*</url-pattern>
            </filter-mapping>
            <filter-mapping>
              <filter-name>springSecurityFilterChain</filter-name>
              <url-pattern>/*</url-pattern>
              <dispatcher>FORWARD</dispatcher>
              <dispatcher>REQUEST</dispatcher>
            </filter-mapping>
            <filter-mapping>
              <filter-name>richfaces</filter-name>
              <servlet-name>SpringMVC</servlet-name>
              <dispatcher>REQUEST</dispatcher>
              <dispatcher>FORWARD</dispatcher>
              <dispatcher>INCLUDE</dispatcher>
            </filter-mapping>
            <listener>
              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
            <!-- Support for concurrent session control to application - - >
                <listener>
                    <listener-class>
                        org.springframework.security.ui.session.HttpSessionEventPublisher
                    </listener-class>
                </listener
            Session listener to clean db connection pool from memory -->
            <listener>
              <listener-class>com.bofa.muni.genesis.servlet.filters.AppSessionListener</listener-class>
            </listener>
            <!-- Just here for CARAT app initialization, *not* used at runtime -->
            <servlet>
              <servlet-name>CaratMainServlet</servlet-name>
              <servlet-class>com.bofa.muni.genesis.servlet.CaratMainServlet</servlet-class>
              <load-on-startup>2</load-on-startup>
            </servlet>
            <servlet>
              <servlet-name>Resources Servlet</servlet-name>
              <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet>
              <servlet-name>ImageServlet</servlet-name>
              <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
              <load-on-startup>2</load-on-startup>
            </servlet>
            <servlet>
              <servlet-name>RptServlet</servlet-name>
              <servlet-class>com.bofa.muni.genesis.report.servlet.ReportServlet</servlet-class>
            </servlet>
            <!-- Just here so the JSF implementation can initialize, *not* used at runtime -->
            <servlet>
              <servlet-name>Faces Servlet</servlet-name>
              <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
              <load-on-startup>0</load-on-startup>
            </servlet>
            <!-- Spring MVC front controller. Automatically loads CaratApp-servlet.xml
                     based on servlet name. But we have named our servlet-config.xml as
                     caratapp-servlet-config.xml hence contextConfigLocation.
                     Additionally loading caratapp-webflow-config.xml.
                -->
            <servlet>
              <servlet-name>SpringMVC</servlet-name>
              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
              <init-param>
               <param-name>contextConfigLocation</param-name>
               <param-value/>
              </init-param>
              <load-on-startup>2</load-on-startup>
            </servlet>
            <servlet-mapping>
              <servlet-name>ImageServlet</servlet-name>
              <url-pattern>/images</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
              <servlet-name>RptServlet</servlet-name>
              <url-pattern>/servlets/rpt</url-pattern>
            </servlet-mapping>
            <!--
                    Map all /resources requests to the Resource Servlet for handling
                -->
            <servlet-mapping>
              <servlet-name>Resources Servlet</servlet-name>
              <url-pattern>/resources/*</url-pattern>
            </servlet-mapping>
            <!-- Just here so the JSF implementation can initialize -->
            <servlet-mapping>
              <servlet-name>Faces Servlet</servlet-name>
              <url-pattern>*.faces</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
              <servlet-name>SpringMVC</servlet-name>
              <url-pattern>/spring/*</url-pattern>
            </servlet-mapping>
            <!-- Welcome page to redirect users to entry point -->
            <welcome-file-list>
              <welcome-file>index.html</welcome-file>
              <!-- welcome-file>/jsp/index.jsp</welcome-file -->
            </welcome-file-list>
            <login-config>
              <auth-method>BASIC</auth-method>
            </login-config>
            </web-app>