Re: WOLips (Eclipse 3.0.1) Linux Launch Classpath Problem

From: Ralf Liebenow (ral..heco.de)
Date: Fri Dec 10 2004 - 14:43:06 EST

  • Next message: Mike Jackson: "Any Build Outside of Eclipse"

    Hi !

    I checked my working directory by code from my application, it IS set
    to the .woa (as is the System property for that), so symbolc paths do work
    here.

    Also I checked the Source code of NSBundle and I can assure you, that it
    will NOT load classes from jar files listed on the classpath if the
    woa or .framework path is not listed in the classpath too ... so having all
    the jars in the classpath (I verified this by code too, listing all
    classpaths in the system property "java.class.path" and the NSProperty
    "com.webobjects.classpath", showing that ALL the jars are actually in
    the classpath, of ALL Frameworks and the Application too, and the
    Contents/Resources/Java Path too) ... but it doesn't matter, NSBundle
    will not register classes, from jars, if the Path of the framework or woa
    is not also in the classpath. NSBundle needs this to differentiate
    own WO classes from classes imported externally, because classes are
    found by NSBundle independently of their package location.

    So the only question is, how I can bring the launcher to add Framework
    and woa Path automatically, not just the jar files therein.

      Greetings
        Ralf

    > Hi Ralph,
    >
    > At 07:26 PM 10/12/2004 +0100, Ralf Liebenow wrote:
    > >
    > >The .woa directory is the working directory of the launch
    > >("Use default working directory" is checked and that points to
    > > ${working_dir_loc_WOLips:X} which is the .woa directory)
    > >
    > I don't know if symbolic paths work for that. I usually just browse the
    > workspace. If you know that it works...
    >
    >
    > >The Problem with .woa and .framework not in the ClassPath is,
    > >that NSBundle does not find them, and NSBundle is used massively by
    > >WO to load Resources such as eomodels, WebComponents etc. it is not
    > >sufficent to have the jar files in the classpath.
    > >
    > Yes, I am rather familiar with NSBundle. And it does, in fact, rely an
    > awful lot on paths relative to .woa/Contents/Resources/Java/app.jar and
    > ..framework/Resources/Java/framework.jar and
    >
    >
    > >Ah .. just FYI: I created the launch configuration with the WOLips
    > >WOApplication launch Type, and verified, that my Framework Y is listed
    > >in the Classpath section (it is under User Entries and there listed under my
    > >Application X along with WOFrameworks and some jar files).
    > No. Not the framework project or the .framework folder -- the jar file
    > inside the framework at .framework/Resources/Java is what you need.
    >
    >
    > Chuck
    >
    >
    > > Greetings
    > > Ralf
    > >
    > >
    > >> On Dec 10, 2004, at 9:13 AM, Ralf Liebenow wrote:
    > >> > However, the launch Configuration I created to launch the Application
    > >> > within Eclipse does not have the right Classpaths setup. NSBundle does
    > >> > not find its Main Bundle because its X.woa Path is not in the
    > >> > classpath.
    > >> > It also does not find Resources for the Framework Y, because the
    > >> > Y.framework Path is not in its classpath.
    > >> >
    > >> You need to make the .woa directory the working directory in the run
    > >> config. I also usually have to tweak the run config's classpath. I
    > >> add the jar from each .framework/Resources/Java directory and move then
    > >> in the list before the projects. There is usually (at least for my
    > >> projects) a lot of duplication in the default generated classpath. I
    > >> like to get rid of this. It makes seeing any problems easier.
    > >>
    > >>
    > >> > The Framework is selected in the Java build Path of the Project (which
    > >> > is necessary to compile the classes), and the jar-files are
    > >> > referenced, so
    > >> > the Problem is only in launching because application and frameworks
    > >> > base
    > >> > paths are not listed in the classpath at launch time (all the jar
    > >> > files are).
    > >> >
    > >> > NSBundle uses the System Properties "java.class.path" and
    > >> > "com.webobjects.classpath" to look for classes, Frameworks and
    > >> > applications.
    > >> >
    > >> > "com.webobjects.classpath" is empty, when I launch in eclipse and
    > >> > "java.class.path" lists only the necessary jar files, which is OK for
    > >> > compilation, but for NSBundle the .framework and .woa Paths needed to
    > >> > be
    > >> > in there.
    > >> >
    > >> I don't know if those are relevant for Eclipse launches. Apps launched
    > >> by Eclipse launch differently than apps launched from the command line.
    > >> Command line launches use WOBootstrap and the <x>Classpath.txt files.
    > >>
    > >> All that said, I've never done this on Linux, but I have pulled out my
    > >> fair share of hair getting complex setups to run.
    > >>
    > >> HTH
    > >> Chuck
    > >>
    > >>
    > >> --
    > >> Practical WebObjects - a book for intermediate WebObjects developers
    > >> who want to increase their overall knowledge of WebObjects, or those
    > >> who are trying to solve specific application development problems.
    > >> http://www.global-village.net/products/practical_webobjects
    > >>
    > >>
    > >>
    > >>
    > >
    > >--
    > >theCode AG
    > >Oranienstr. 10-11, 10997 Berlin [×]
    > >fon +49 30 617 897-0 fax -10
    > >ral..heCo.de http://www.theCo.de
    > >
    >
    > --
    >
    > Chuck Hill chil..lobal-village.net
    > Global Village Consulting Inc. http://www.global-village.net
    >

    -- 
    theCode AG
    Oranienstr. 10-11, 10997 Berlin [×]
    fon +49 30 617 897-0  fax -10
    ral..heCo.de http://www.theCo.de
    



    This archive was generated by hypermail 2.0.0 : Fri Dec 10 2004 - 14:43:09 EST