On 13/01/2009, at 4:38 PM, Lachlan Deck wrote:
On 13/01/2009, at 11:14 AM, D Tim Cummings wrote:
Yes, bug radar 6487590
This may, of course, not be a bug of Apple's but with the final
build. Check the executable script for your app. i.e.,
$ less YourApp.woa/YourApp
The last line of mine has this:
eval exec ${JAVA_EXECUTABLE} ${JAVA_EXECUTABLE_ARGS} -classpath
WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap $
{COMMAND_LINE_ARGS} -WOFrameworksBaseURL /WebObjects/MyApp.woa/
Contents/Frameworks
i.e., the WOFrameworksBaseURL is specifically getting set (whereas
in the past this used to not be the case). Now I'm building with
maven (using the woproject-maven plugin) but it's highly possible
that seeing as it shares some functionality with woproject ant stuff
that this is also happening for you for embedded builds.
If yours also has this - then this *is* the problem. That's why your
properties are getting ignored - because the first property wins.
with regards,
--
Lachlan Deck
Hi Lachlan
This is definitely an Apple bug. It doesn't occur in WebObjects 5.3.3
but does occur in WebObjects 5.4.3. Are you deploying using
WebObjects 5.4.3 in your apps which use WOFrameworksBaseURL? If so
you need to check the urls of any static webserver resources from
frameworks because I would say they are coming from the wrong place.
Below is what I already posted to the WebObjects deploy mailing list
which shows that when you first call WOApplication.frameworksBaseURL()
it actually changes the value from whatever you have set it, to /
WebObjects/Frameworks. This is particularly dangerous in a deploy
situation because you think it is using the latest ajax scripts from
your embedded frameworks in your split install, but in fact it is
using some old ajax javascript that happened to be sitting /Library/
WebServer/Documents/WebObjects/Frameworks.
To identify the bug I added some more logging and overrode some
WOApplication methods. As you can see the first call to
frameworksBaseURL() in WebObjects 5.4.3 actually calls
setFrameworksBaseURL("/WebObjects/Frameworks"). This does not happen
in WebObjects 5.3.3
public class Application extends WOApplication {
public static void main(String[] argv) {
WOApplication.main(argv, Application.class);
}
public Application() {
NSLog.out.appendln("Welcome to " + name() + " !");
/* ** put your initialization code in here ** */
if ( System.getProperty("WOFrameworksBaseURL") != null )
setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
frameworksBaseURL();
if ( System.getProperty("WOFrameworksBaseURL") != null )
setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
frameworksBaseURL();
}
@Override
public String frameworksBaseURL() {
NSLog.out.appendln("frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = " +
WOProperties.TheFrameworksBaseURL);
NSLog.out.appendln("frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = " +
System.getProperty("WOFrameworksBaseURL"));
String s = super.frameworksBaseURL();
NSLog.out.appendln("frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = " +
WOProperties.TheFrameworksBaseURL);
NSLog.out.appendln("frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = " +
System.getProperty("WOFrameworksBaseURL"));
NSLog.out.appendln("frameworksBaseURL() post super:
super.frameworksBaseURL() = " + s);
NSLog.out.appendln("");
return s;
}
@Override
public void setFrameworksBaseURL(String string) {
NSLog.out.appendln("setFrameworksBaseURL(String string): change from
" + WOProperties.TheFrameworksBaseURL + " to " + string);
super.setFrameworksBaseURL(string);
}
}
WEBOBJECTS 5.4.3 - SHOWS BUG
[2009-1-11 11:26:8 EST] <main> WOFrameworksBaseURL=/WebObjects/
WeboTest.woa/Frameworks
...
[2009-1-11 11:26:8 EST] <main> WebObjects version = 5.4.3
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/
WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
WeboTest.woa/Frameworks to /WebObjects/Frameworks <--WHO'S CALLING THIS
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
Frameworks to /WebObjects/WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
WEBOBJECTS 5.3.3 - NO BUG
[2009-01-11 11:32:02 EST] <main> WOFrameworksBaseURL=/WebObjects/
WeboTest.woa/Frameworks
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/
WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
WeboTest.woa/Frameworks to /WebObjects/WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
Cheers
Tim
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com