Hi Chuck,
I found a log4j in /Library/WebObjects/Extensions but I had the same
problem after removing it. My /Library/Java/Extensions only had my jdbc
drivers in it.
I removed the _sessionClass() method from Application.java, which I
didn't really need, and the problem went away. I was able to have
Main.java in a different package to Application.java again.
Thanks
Tim
Quoting Chuck Hill <chil..lobal-village.net>:
> That is all very odd. Adding that method should not have affected
> finding the correct class. Changes to WOLips might be resulting in a
>
> different load order for the jars causing this. Do you have anything
>
> in /Library/Java/Extensions related to log4j?
>
> Chuck
>
>
> On Nov 1, 2007, at 6:28 PM, timc..pg.com.au wrote:
>
> > Thanks Chuck
> >
> > I changed this to
> >
> > Class mainClass = _NSUtilities.classWithName("Main");
> > NSLog.out.appendln("Main class is " + mainClass.getName());
> >
> > and got
> >
> > Main class is org.apache.log4j.chainsaw.Main
> >
> > The problem is happening when I deploy to Mac as well as Windows,
> but
> > doesn't show itself when I run from within eclipse in deployment
> mode.
> >
> > Main class is au.com.triptera.weblink.form.Main
> >
> > So I moved Main into the same package as Application and now it
> works
> > deployed on Mac (probably Windows too)
> >
> > Main class is au.com.triptera.weblink.Main
> >
> >
> > I had added the following method last week to Application.java so
>
> > maybe
> > this was responsible for not finding Main.java combined with the
> > Wonder
> > frameworks change.
> >
> > private Class _ourSessionClass;
> >
> > /* (non-Javadoc)
> > *..ee com.webobjects.appserver.WOApplication#_sessionClass()
> > * WebObjects searches the classpath and uses the first class it
>
> > finds with
> > * the name Session ... crazy huh? This ensures that Session from
> the
> > same package as the
> > * Application class is used
> > */
> > ..verride
> > protected Class _sessionClass()
> > {
> > if (_ourSessionClass == null) {
> > String ourSessionClassName = null;
> > try {
> > ourSessionClassName = getClass().getPackage().getName() +
> > ".Session";
> > System.out.println("Using " + ourSessionClassName + " as the
> > application's Session class.");
> > _ourSessionClass = Class.forName( ourSessionClassName );
> > } catch ( Exception e ) {
> > System.err.println( "What have you done with your " +
> > ourSessionClassName + " class?!\n" + e.getStackTrace() );
> > }
> > } //~ if (_ourSessionClass == null)
> > return _ourSessionClass;
> > }
> >
> >
> > Thanks for your help.
> >
> > Regards
> >
> > Tim Cummings
> >
> > Quoting Chuck Hill <chil..lobal-village.net>:
> >
> >> That sounds like a classpath problem, it is picking up some other
> >> Main.java. You can try this as a diagnostic:
> >>
> >> Class mainClass = _NSUtilities.classWithName("Main");
> >> NSLog.out.appendln("Main class is " + mainClass.getClass().getName
>
> >> ());
> >>
> >> That may provide a clue.
> >>
> >> Chuck
> >>
> >>
> >
>
> --
>
> Practical WebObjects - for developers who want to increase their
> overall knowledge of WebObjects or who are trying to solve specific
>
> problems.
> http://www.global-village.net/products/practical_webobjects
>
>
>
>
>
>
>
This archive was generated by hypermail 2.0.0 : Fri Nov 02 2007 - 01:03:00 EDT