Re: WebObjects Builder ... again
Re: WebObjects Builder ... again
- Subject: Re: WebObjects Builder ... again
- From: Ashley Aitken <email@hidden>
- Date: Sun, 11 Jul 2004 00:06:27 +0800
On 10/07/2004, at 11:45 PM, Dov Rosenberg wrote:
I think as long as you set the WO_APPLICATION_CLASS_NAME property you
can
use any name you want as long as it extends WOApplication or some other
descendant that does.
No, try it (if or when you get the time or interest ;-), you can't use
any name.
Even if you set the WO_APPLICATION_CLASS_NAME property (e.g.
my.package.MYApplication) WOBuilder looks for the class
my.package.Application (you can see this by the tooltip in WOBuilder
for the application object). Same for the session.
Doesn't depend on subclasses of subclasses etc, it is just the (short)
class name needs to be Application and Session for WOBuilder to work,
honest, I'm not making this up, I just tried it ;-)
Everything will compile, deploy and run fine, it is just that WOBuilder
seems to have the class names Application and Session (short class
names) hard-coded (but it will work out the package ok).
Strange!?
Cheers,
Ashley.
Not sure about the Session. We have a subclass of
WOSession in one of our frameworks that we in turn subclass again for
our
application. The first Subclass is not called Session but the final
one is.
That will work fine because your (short) class names are Application
and Seession
I'm not sure how the WOApplication would "know" about your Session
class
unless there is some mechanism to register your session as a delegate.
What I do to change the Session class is to override the method:
public WOSession createSessionForRequest(WORequest aRequest) {
return new my.package.Session();
}
You didn't mention if you were deploying as a servlet or as a regular
webobjects application. If you are deploying as a servlet - you need
to make
sure that the WOServletAdaptor gets properly initialized. The app will
appear to start but nothing will work.
I'm referring to development, particularly WOBuilder.
HTH
Dov Rosenberg
Conviveon Corporation
On 7/10/04 10:03 AM, "Ashley Aitken" <email@hidden> wrote:
Thanks Dov,
Let me guess though: the "short" class names (ie without the package)
are still Application and Session?
The problem was I tried to change these names to XYApplication and
XYSession - that doesn't seem to work, please tell me if that is what
you have done and you were successful.
It is somewhat understandable because how can WOBuilder work out the
"short" name of the application and session classes (yes, it could
look
in WO_APPLICATION_CLASS_NAME property for the application class, but
what about for the session class?).
So in summary, I believe it is possible to add packages to the
application and session classes and for everything to work fine, but
WOBuilder will have problems if you change the class names from
Application and Session.
Cheers,
Ashley.
On 10/07/2004, at 9:26 PM, Dov Rosenberg wrote:
All of our classes including Application and Session are packaged.
While we
use Eclipse/WOLips to do our builds, WOBuilder stil seems to work.
I know we did have to implement a hack when we upgraded to 5.2.3 to
get
WOBuilder to see our methods and variables. I think it had something
to do
with replacing a private framework with one from an earlier version
of
WebObjects. Something about DevKit I think. Obviously that may cause
us
problems down the road but it fixed our current problem.
The other thing we had to do is make sure our bindings were PUBLIC
instead
of PROTECTED or PRIVATE. WOBuilder couldn't see them properly and the
apps
blew up at runtime because the WO runtime expects anonymously
packaged
classes - which most J2EE app servers don't like.
HTH
Dov
On 7/10/04 2:10 AM, "Ashley Aitken" <email@hidden> wrote:
Hi Art (and list members),
Thanks for your post.
Sorry, I probably wasn't clear enough in what I was saying.
On 10/07/2004, at 11:11 AM, Art Isbell wrote:
On Jul 9, 2004, at 4:17 PM, Ashley Aitken wrote:
Also be careful if you use packages for your Application and
Session
classes.
It can cause mixups.
Finally, don't change the name of the classes Application and
Session.
I once tried to change them to XYApplication and XYSession and I
think the tools can't find them ...
Did you update the WOAPPLICATION_CLASS_NAME variable in the main
target's Expert View? I add Application, Session, and all other
application files to a package for each app I develop. This works
fine if I update the value of WOAPPLICATION_CLASS_NAME to the
fully-qualified name of the WOApplication subclass in my app.
Yes, I did that.
The problem I saw was that if you called your Application and
Session
classes anything other than your.package.Application and
your.package.Session (eg your.package.XYApplication & XYSession)
then
WOBuilder wouldn't work properly with them. The application would
still build and run fine (if you had changed the
WOAPPLICATION_CLASS_NAME, as you indicated, and changed the
appropriate
method to return one of your sessions).
I just tried it again and the problem still seems to exist (unless I
am
missing something, which could very well be the case ;-). The
application and session objects appear but WOBuilder thinks the
class
names are your.package.Application / Session - determined by the
tooltip! As a result, you can't add keys / actions and do other
things
in WOBuilder, and I don't believe it picks up on any keys or actions
that you add manually (i.e. it's looking for the wrong classes).
I would be interested to know if others have succeeded with other
names
for these classes. What's the trick? My guess is that these names
are
hardcoded into WOBuilder and most everyone just goes with
Application
and Session. I've lost many hours over this "problem" and wish
Apple
had documented this "requirement." I probably should have submitted
it
as a bug but then I thought it was so obvious, and Apple hasn't been
keen to update WOBuilder ...
Cheers,
Ashley.
--
Ashley Aitken
Perth, Western Australia
mrhatken at mac dot com
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.
--
Dov Rosenberg
Conviveon Corporation
370 Centerpointe Circle, suite 1178
Altamonte Springs, FL 32701
http://www.conviveon.com
email@hidden
AOL IM: dovrosenberg
(407) 339-1177 x102
(407) 339-6704 (fax)
(800) 475-9890
(407) 310-8316 (cell)
--
Ashley Aitken
Perth, Western Australia
mrhatken at mac dot com
--
Dov Rosenberg
Conviveon Corporation
370 Centerpointe Circle, suite 1178
Altamonte Springs, FL 32701
http://www.conviveon.com
email@hidden
AOL IM: dovrosenberg
(407) 339-1177 x102
(407) 339-6704 (fax)
(800) 475-9890
(407) 310-8316 (cell)
Cheers,
Ashley.
--
Ashley Aitken
Perth, Western Australia
mrhatken at mac dot com
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.