Hello,

I have been biten by the Tomcat/CGlib/redploy issue where tomcat is
unable or unwilling to garbage collect threadlocals upon redploy. I
thought I would give the Jetty version of Geronimo a try.

Much to my surprise, my app fails to deploy under Geronimo using
Jetty. I am somewhat confused as to the exact issue, but near as I can
tell, or at least suspect, that I am running into classloader issues
under Jetty. I am not sure if this is Geronimo related or simply that
Jetty requires a different deployment.

The web.xml for my app is pretty simple and just uses a filter to the
ACEGI FilterToBeanProxy, a ContextLoaderListener and a
DispatcherServlet.

If anyone has any idea as to what the issue is I am all ears.

Thanks,

Dennis

The class not found error is below.

20:34:47,554 ERROR [GBeanInstanceState] Error while starting; GBean is now in th
e FAILED state: objectName="geronimo.server:name=Acegi-Security,J2EEServer=geron
imo,J2EEApplication=null,WebModule=acconline,j2eeType=WebFilter"
javax.servlet.ServletException: Class of type
net.sf.acegisecurity.util.FilterChainProxy not found in classloader

My web.xml is below.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app>
        <display-name>acconline</display-name>
        <welcome-file-list>
                <welcome-file>index.html</welcome-file>
        </welcome-file-list>
        <filter>
                <filter-name>Acegi-Security</filter-name>
                
<filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class>
                <init-param>
                        <param-name>targetClass</param-name>
                        
<param-value>net.sf.acegisecurity.util.FilterChainProxy</param-value>
                </init-param>   
        </filter>
        <filter-mapping>
                <filter-name>Acegi-Security</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/dao-*.xml /WEB-INF/service-*.xml
/WEB-INF/context-*.xml /WEB-INF/*-datasource.xml</param-value>
        </context-param>
        <listener>
                <listener-class>
                        org.springframework.web.context.ContextLoaderListener
                </listener-class>
        </listener>
        <servlet>
                <servlet-name>ACCOnline</servlet-name>
                
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>ACCOnline</servlet-name>
                <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>
   <session-config>
      <session-timeout>15</session-timeout>
   </session-config>
</web-app>

Here is my geronimo-web,xml as well jsut so you have a complete picture.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.0";
configId="acconline">
    <hidden-classes><filter>org.springframework</filter></hidden-classes>
    <hidden-classes><filter>net.sf.cglib</filter></hidden-classes>
    <hidden-classes><filter>net.sf.acegisecurity</filter></hidden-classes>
    <context-root>/acconline</context-root>
    <context-priority-classloader>false</context-priority-classloader>
</web-app>

Reply via email to