Hi Tim,

On 14/01/2009, at 3:33 PM, D Tim Cummings wrote:

On 14/01/2009, at 8:00 AM, Lachlan Deck wrote:
Sure. I'm just suggesting to double check the end of the app script i.e.,
$ tail YourApp.woa/YourApp

Hi Lachlan

Thanks for your interest. The last lines of the launch script look good.

Nope :-) It has the WOFrameworksBaseURL argument which therefore cannot be overridden by any subsequent property setting (whether in Monitor or your app's properties).

You can take it out OR provide your own property to change the value in your app's constructor or similar.

There may well be a bug in WO5.4.x (I haven't deployed any 54 apps as yet) but what you're seeing below is exactly why your attempts to change the property in Monitor etc are being ignored.

I also tried setting -WOFrameworksBaseURL in JavaMonitor and WOFrameworksBaseURL in the Properties file, before I worked out it was an Apple bug in WebObjects 5.4.3

tail WeboTest.woa/WeboTest

#
# Launch the application.
#
echo Launching ${SCRIPT_NAME}.woa ...

echo ${JAVA_EXECUTABLE} ${JAVA_EXECUTABLE_ARGS} -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap $ {COMMAND_LINE_ARGS} -WOFrameworksBaseURL /WebObjects/WeboTest.woa/ Frameworks eval exec ${JAVA_EXECUTABLE} ${JAVA_EXECUTABLE_ARGS} -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap $ {COMMAND_LINE_ARGS} -WOFrameworksBaseURL /WebObjects/WeboTest.woa/ Frameworks

Here's the output that used to be true (both from Apple's stuff and Wonder. e.g., BugTracker)
----------
#
# Launch the application.
#
echo Launching ${SCRIPT_NAME}.woa ...

echo ${JAVA_EXECUTABLE} ${JAVA_EXECUTABLE_ARGS} -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap $ {COMMAND_LINE_ARGS} eval exec ${JAVA_EXECUTABLE} ${JAVA_EXECUTABLE_ARGS} -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap $ {COMMAND_LINE_ARGS}
----------

Now I understand the motivation for this - it's a consequence of fully embedded builds - but it means if you want to change the location in any way you have to come up with an alternative implementation in code (triggered from your own properties) to overcome it.

So my own approach has been to do the following:

        /**
         * @see er.extensions.ERXApplication#finishInitialization()
         */
        public void finishInitialization()
        {
                super.finishInitialization();
                <...>
                
                // fix frameworks/app webserver resources url.
                LOG.info( "WOApplicationBaseURL:" + applicationBaseURL() );
if ( ERXProperties .booleanForKeyWithDefault ( "ISHFrameworksBaseURL.relativeToApplicationBaseURL", true ) )
                {
                        String realAppName = NSPathUtilities.lastPathComponent( 
path() );
                        NSArray< String > components = new NSArray< String >( 
new String[] {
                            realAppName, "Contents", "Frameworks"
                        } );
                        String newBaseURL = applicationBaseURL();
for ( Enumeration< String > en = components.objectEnumerator(); en.hasMoreElements(); )
                        {
newBaseURL = NSPathUtilities.stringByAppendingPathComponent( newBaseURL, en.nextElement() );
                        }
                        ERXProperties.setStringForKey( newBaseURL, 
"WOFrameworksBaseURL" );
                        setFrameworksBaseURL( newBaseURL );
                }
                LOG.info( "WOFrameworksBaseURL:" + frameworksBaseURL() );
                <...>
        }


with regards,
--

Lachlan Deck



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to