Re: Build problems for Windows [Solved]

From: Chuck Hill (chil..lobal-village.net)
Date: Thu Nov 01 2007 - 21:34:10 EDT

  • Next message: Andrew Lindesay: "Re: Build problems for Windows [Solved]"

    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 : Thu Nov 01 2007 - 21:35:03 EDT