Re: Switch from 5.3.3 to 5.4.3 breaks tomcat deployment
Re: Switch from 5.3.3 to 5.4.3 breaks tomcat deployment
- Subject: Re: Switch from 5.3.3 to 5.4.3 breaks tomcat deployment
- From: John Huss <email@hidden>
- Date: Thu, 6 May 2010 09:19:12 -0500
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@hidden> 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@hidden 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@hidden>
Sent: Thursday, May 6, 2010 9:49am
To: email@hidden
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@hidden>
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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (
email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden