You could just do the initialization when the first request comes in, from dispatchRequest. But if you are doing concurrent request handling that may cause problems, but so could the first solution.
John On Thu, May 6, 2010 at 9:10 AM, Jon Nolan <[email protected]> wrote: > Sure thing Ken. I basically just fire off a ERXTimerTask from the static > initialization of a principal class. I throw in a 30 second delay to make > sure the app is completely launched as I don't understand the ins and outs > of when principal classes are loaded. > > public class PrincipalClass { > private static Logger LOG = Logger.getLogger(PrincipalClass.class); > > static { > SomeTask.start(); > } > > } > > public class SomeTask extends ERXTimerTask { > private static Logger LOG = Logger.getLogger(SomeTask.class); > > // static > public static void start() { > try { > SomeTask task = new SomeTask(); > Timer timer = new Timer(true); > timer.schedule(task, 30000); > } > catch (Exception e) { > LOG.error("unable to start task", e); > } > } > > @Override > public void _run() { > // do whatever here > } > > } > > It's ugly but it works. I'd be interested in hearing about other (better) > solutions myself. > > Jon > > > On 5/6/10 7:56 AM, [email protected] wrote: > >> Jon, >> >> Thanks. It might be a red herring, but our entire startup happens in the >> target method of that notification, so it's a mighty big issue for us. Yes, >> I *would* be very interested in your hack, even if it's just to understand >> the problem better. >> >> Thanks! >> Ken >> >> -----Original Message----- >> From: "Jon Nolan"<[email protected]> >> Sent: Thursday, May 6, 2010 9:49am >> To: [email protected] >> Subject: Re: Switch from 5.3.3 to 5.4.3 breaks tomcat deployment >> >> I think he's saying ApplicationDidFinishInitializationNotification not >> being posted is a known bug. NSNotification(Center) stuff works, just >> not this one. Something to do with having to use JavaWOJSPServlet I >> believe although I'm not certain. My workaround is an embarrassing hack >> so I'd rather not share it unless you're really interested. ;-) >> >> I'm not sure exactly why you're having troubles but 5.4 deployment under >> tomcat (I never did deploy 5.3) is an exercise is patience. One thing >> after another. It does work though. Don't worry about >> appDidFinishLaunching() not being called. That's a red herring in this >> case.// >> >> >> On 5/6/10 3:56 AM, Ken Anderson wrote: >> >>> Are you saying I just can't deploy 5.4.3 with Tomcat ? There's no >>> workaround ? >>> >>> >>> On May 5, 2010, at 11:08 PM, Ramsey Lee Gurley wrote: >>> >>> >>>> On May 5, 2010, at 10:42 PM, Ken Anderson wrote: >>>> >>>> All, >>>>> >>>>> We're in the midst of converting some WO apps from 5.3.3 to 5.4.3. >>>>> Everything works well in Eclipse, but when we deploy to tomcat 5.5 via a >>>>> .war file, the app basically does nothing. Remote debugging shows that >>>>> the >>>>> Application constructor gets called, but the notification center never >>>>> fires >>>>> the appDidFinishLaunching event. >>>>> >>>>> We're using Java 1.6 if that matters... Any thoughts? >>>>> >>>>> Thanks! >>>>> Ken >>>>> >>>> >>>> Known issue if I'm not mistaken... >>>> >>>> Begin forwarded message: >>>> >>>> Date: October 23, 2008 5:13:02 PM EDT >>>>> To: Apple WO-Dev<[email protected]> >>>>> Subject: Wonder App doesn't receive >>>>> "ApplicationDidFinishLaunchingNotification" notification when deployed >>>>> as >>>>> a servlet >>>>> >>>>> I was banging my head on this, so I thought I would share it with the >>>>> group: >>>>> >>>>> Our Wonder App doesn't receive >>>>> "ApplicationDidFinishLaunchingNotification" notification when deployed as >>>>> a >>>>> servlet, this results in ERXRemoteSynchronizer not being started when >>>>> initialized using ERXObjectStoreCoordinatorSynchronizer.initialize(); >>>>> since >>>>> initialization depends on that notification being received (Line 87 in >>>>> ERXObjectStoreCoordinatorSynchronizer.java): >>>>> >>>>> NSNotificationCenter.defaultCenter().addObserver(this, new >>>>> NSSelector("startRemoteSynchronizer", ERXConstant.NotificationClassArray), >>>>> WOApplication.ApplicationDidFinishLaunchingNotification, null); >>>>> >>>>> You can bypass that by doing this instead >>>>> >>>>> ERXObjectStoreCoordinatorSynchronizer.synchronizer().initializeRemoteSynchronizer(); >>>>> >>>>> As a confirmation I also overrode didFinishLaunching() from >>>>> ERXApplication and that doesn't get called either when deployed as a >>>>> servlet... >>>>> >>>>> Thanks, >>>>> >>>>> Saad >>>>> >>>>> >>>> >>> _______________________________________________ >>> 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/lists%40lochgarman.com >>> >>> This email sent to [email protected] >>> >>> >> _______________________________________________ >> 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/kenlists%40anderhome.com >> >> This email sent to [email protected] >> >> >> >> > _______________________________________________ > 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/johnthuss%40gmail.com > > This email sent to [email protected] >
_______________________________________________ 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]
