Donald Woods wrote:
I'm actually seeing a failure to start the server on certain IBM
JVM's, like the IBM SDK for Solaris (or HP-UX.) This is due to a
unique packaging change, where they supply a jre/lib/endorsed
directory which contains the following -
ibmcertpathfw.jar ibmjgssfw.jar ibmpkcs.jar
ibmcertpathprovider.jar ibmjgssprovider.jar ibmsaslfw.jar
ibmcfw.jar ibmjmxstubsties.jar xml.jar
ibmext.jar ibmorb.jar
ibmjcefw.jar ibmorbapi.jar
For Linux, Windows and AIX, there is no jre/lib/endorsed directory,
which matches the layout of the Sun JDK for Linux, Windows and Solaris.
So, due to the above JDK, don't we need the Geronimo lib/endorsed
directory before the JDK's?
Ah, ok, I see what's happening. Ok, here's the situation. The base
JVM on the Sun platform has the org.omg.* classes used for CORBA
resident on the bootclasspath. The endorsed.dirs settings is the
JVM-defined way to override certain packages resident in the JVM and
replace them with a vendor-supplied set of packages. The org.omg.*
classes are specifically mentioned as classes for which this is supported.
For Yoko's case, the Sun-provided org.omg classes do not actually
conform to the CORBA defined signatures for a few of the classes, so it
is necessary to override the JDK-provided set by either adding them to
endorsed.dirs or prepending the jars to the bootstrap classpath.
Well, from the list above, it's obvious that the IBM JDK is also doing
this. Note that two of the jars in the list above are "ibmorb.jar" and
"ibmorbapi.jar", which are obviously not compatible with what Yoko is
expecting to see.
So, to net it out, I'd say that for Sun JDKs, it doesn't matter which
directory comes first in the endorsed.jars list, while for the IBM JDK,
it quite clearly does matter which comes first. In order for the yoko
ORB to function correctly it must be ahead of the IBM orb implementation
in the search order.
Rick
-Donald
Rick McGuire wrote:
Donald Woods wrote:
What order should the paths be for java.endorsed.dirs?
Should it be -
1) JDK's lib/endorsed before Geronimo's lib/endorsed
2) Geronimo's lib/endorsed before the JDK's lib/endorsed
I'm wondering due to the following warning/exception in the
geronimo-corba module -
"Incorrect level of org.omg.CORBA classes found.
Likely cause is an incorrect java.endorsed.dirs configuration"
Don't we need the Yoko implementation in the endorsed classpath
before the JDK's implementation???
For the yoko code, I'm not sure it matters. The classes the yoko
code overrides is contained in the base JVM, not in jar files
contained in the endorsed dirs. Not including the yoko jars in the
endorsed dirs is one potential cause of that error (and a frequent
one for 2.0 until the CORBA support was fully enabled). There are
other situations as well that can lead to that. Are you encountering
the error, or just wondering because you saw the message in the yoko
code?
Rick
-Donald