Re: WebObjects jar frameworks and classpaths
Re: WebObjects jar frameworks and classpaths
- Subject: Re: WebObjects jar frameworks and classpaths
- From: Chuck Hill <email@hidden>
- Date: Thu, 15 Jan 2009 11:19:30 -0800
On Jan 15, 2009, at 9:20 AM, John Pollard wrote:
Chuck, thanks for your thoughts.
On 14 Jan 2009, at 03:16, Chuck Hill wrote:
Go to the Libraries tab, click Add Library, select WebObjects
Frameworks, select your framework. You probably need to install
it before doing this, I forget.
Is this also exactly equivalent to a line like this in
the .classpath file?
<classpathentry kind="con" path="WOFramework/MPServerEOs"/>
Yes. I'd recommend quitting Eclipse if you are going to manually edit
this file.
Another very helpful guy on the Rome list said this:
[START QUOTE]
... it would seem to be a classloading bug. The code we use to load
the plugin is effectively this:
Class clazz = Class.forName(_propertyValues[i], true,
Thread.currentThread().getContextClassLoader())
Where does that get called from? When? I'd guess that
Thread.currentThread() would be a WOWorkerThread and it should be able
load that class if it is in a framework.
Where _propertyValues[i] is a classname from a rome.properties file
found on the classpath.
I don't know anything at all about Webobjects, but a bit of
searching found this: http://lists.apple.com/archives/Webobjects-dev/2007/Mar/msg00644.html
which seems to indicate that Webobjects classloading has some
unique quirks (in particular the reference to " cross- your-fingers-
if-you-have-two-classes-with-the-same-name" seems ominous).
That won't affect this, it only affects things like pageWithName and
component names in .wod files.
It may be worth forwarding this email to any webobjects experts to
see if they have an opinion on why using Class.forName with the
Thread context classloader doesn't seem to work. I've forward this
to the ROME dev list in case anyone there has an opinion.
[END QUOTE]
For now I have had to throw everything back into /Library/Java/
Extensions to make things work.
I have to think how much time I've spent trying to take some jars
(previously jasper reports, now rome) out of /L/J/E and into jar
frameworks!
OK, so it might be a class loading error after all. Is there anything
else in /Library/Java/Extensions that might have a dependancy to/from
the jars you are moving? If you put those jars in /Library/WebObjects/
Extensions, does it make any difference?
Chuck
On 8 Jan 2009, at 14:01, John Pollard wrote:
Lachlan,
Many thanks for your reply. I have updated to the latest Eclipse
3.4.1 and the latest WOLips nightly, but that does not resolve
this issue. I am also posting to the rome mailing list to try
from that angle, but a nightly build of the latest rome jar
didn't help either.
I also tried adding the two jars to my application directly,
cutting out the framework, but got the same outcome.
The rome jar only depends on the jdom dar, so shouldn't be too
complicated. I will post back if I eventually find the reason for
this.
John
On 6 Jan 2009, at 23:31, Lachlan Deck wrote:
Hi John,
On 07/01/2009, at 12:18 AM, John Pollard wrote:
A bit off topic, but I am struggling to make sense of this.
Simply put I want to understand why I can't put a couple of
jars into a WO framework and have the code still work as it
does when the same jars are in /Library/Java/Extensions.
Not really off topic. This is a classpath issue.
Created a new WebObjects framework.
Manually moved two jar files (rome-1.0RC1.jar and jdom.jar) out
of /Library/Java/Extensions into the new framework project's /
Libraries sub folder
Good.
In Java Build Path properties, Libraries tab, Add Jars.. to add
them in, then in the Order and Export tab tick them
Good.
In the app project, add the new framework as a dependency
Eclipse shows no compile time problems, so why the runtime error:
[java.lang.NoClassDefFoundError] com/sun/syndication/io/
ModuleGenerator
I will be very grateful for any pointers to help me solve this
one; in particular why/when Eclipse is happy at compile time,
but actually the classes are not found when run.
Are you running WOLips nightly and Eclipse 3.4.x? If not you
might need to update WOLips/Eclipse to get the fix that I think
went in late November.
The class that is not found is definitely in the rome jar.
Search the archives for Transitive. It's a transitive dependency
problem.
with regards,
--
Lachlan Deck
_______________________________________________
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
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
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
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
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