Question: Now it seems everything is working properly. However, in order to use my custom appender, I need a value I insert in the MDC for every POST to the servlet. It seems like Geronimo is also trying to use my log4j configuration, and since geronimo's threads do not have the value in their MDC, then I get a warning from my appender.
So my question is : is Geronimo using my log4j configuration ? -----Original Message----- From: Poulin, Maxime [mailto:[EMAIL PROTECTED] Sent: Thursday, November 30, 2006 3:38 PM To: [email protected] Subject: RE: Log4j problem with my ear - more generally a class loader question. Actually, I rewrote my xmls with the dep: thing. ger-app.xml <application 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/application_1_4.xsd" version="1.4"> configId="efxRootConfig" inverseClassloading="true" application-name="efx" > <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>efx</dep:groupId> <dep:artifactId>efx</dep:artifactId> <dep:version>1.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies/> <dep:hidden-classes> <dep:filter>org.apache.log4j.</dep:filter> <dep:filter>org.apache.commons.logging.</dep:filter> </dep:hidden-classes> </dep:environment> <module> <web> <web-uri>chapel.war</web-uri> <context-root>/chapel</context-root> </web> </module> </application> ger-web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>chapel</dep:artifactId> <dep:version>1.1</dep:version> <dep:type>war</dep:type> </dep:moduleId> </dep:environment> <context-root>/chapel</context-root> </web-app> -----Original Message----- From: Poulin, Maxime [mailto:[EMAIL PROTECTED] Sent: Thursday, November 30, 2006 3:12 PM To: [email protected] Subject: RE: Log4j problem with my ear - more generally a class loader question. Well I tried it but this is what I get : -- log4j:WARN No appenders could be found for logger (com.zerobase.chaplin.ChaplinStartupListener). log4j:WARN Please initialize the log4j system properly. --- Really don't get it. Here is the structure : chapel (webapp) -> Has three libraries : chaplin-common.jar chaplin-fx.jar struts.jar The startup listener (see trace above) is in chaplin-common.jar . It performes the init call for log4j. the ear contains all the jars for the business logic and architecture. chaplin-common.jar and chaplin-fx.jar need the jars from the ear to work. Including the zbutils.jar which contains my appender and actually all the real log4j initialization. here are my xmls : geronimo-web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1" > <environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <moduleId> <groupId>geronimo</groupId> <artifactId>chapel</artifactId> <version>1.1</version> <type>war</type> </moduleId> </environment> <context-root>/chapel</context-root> </web-app> and my geronimo-application.xml: <application 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/application_1_4.xsd" version="1.4"> configId="efxRootConfig" inverseClassloading="true" application-name="efx" > <environment> <module> <web> <web-uri>chapel.war</web-uri> <context-root>/chapel</context-root> </web> </module> <hidden-classes> <filter>org.apache.commons.logging</filter> <filter>org.apache.log4j</filter> </hidden-classes> </environment> </application> Sub-question, this is a naive one. Why do you use dependencies for all your tags ? (Precision: I've been working mostly on websphere to change our web application into an enterprise application and now I am working on the same thing for geronimo so I am quite new on this container). Max. -----Original Message----- From: David Jencks [mailto:[EMAIL PROTECTED] Sent: Thursday, November 30, 2006 12:56 PM To: [email protected] Subject: Re: Log4j problem with my ear - more generally a class loader question. The first thing to try is to use the hidden-classes element in your geronimo deployment plan to not import geronimo's log4j and commons- logging classes. Your geronimo-application.xml plan should start something like this: <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/ application-1.1"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/ deployment-1.1"> <dep:moduleId> <dep:groupId>org.chapel</dep:groupId> <dep:artifactId>Chapel-jetty</dep:artifactId> <dep:version>1.0-SNAPSHOT</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies/> <dep:hidden-classes> <dep:filter>org.apache.log4j.</dep:filter> <dep:filter>org.apache.commons.logging.</dep:filter> </dep:hidden-classes> </dep:environment> ... hope this helps. david jencks On Nov 30, 2006, at 8:42 AM, Poulin, Maxime wrote: > Greetings ! > > So I am trying the very painful task of building one single ear file > that would work properly under websphere, geronimo and some others. > > The ear contains 1 web app called Chapel, a few EJBs and 2 j2ee client > apps. > > As we deploy on multiple containers (some of them don't have log4j), > we keep the log4j and apache commons-logging in the ear file. > > Now here is my problem. I created my own log4j appender which I wish > to use. The jar containing this appender is contained in the ear just > like log4j etc. Now when log4j is initialized, it is geronimo's log4j > that is used, and it does not find my custom appender (class not > found). I guess that geronimo's log4j is higher in the hierarchy, and > does not look down. > > So either I make my jar visible to geronimo's log4j or I tell geronimo > to use my own log4j instead of his for my ear. > > I need advice on this, advice, comments or experience. Could you tip > me ? > > Advices on geronimo's class loaders are also welcomed. > > Thank you very much. > > Maxime Poulin > CGI - CGIFX > 514-228-8800 ext.2860
