... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)

2006-01-19

BEA WebLogic 8.1

The best place to supplement the CLASSPATH used by the WebLogic server is to edit %WLS_HOME%/common/bin/commEnv.cmd (or .sh on Unix) -- at least if you want the change to apply to all WebLogic domains.

I found a note about running XFire on WebLogic 8.1.  It says that XFire requires a newer version of the standard java QName class, and that this can only be accomplished by adding that class to the front of WebLogic's classpath.  I wonder if this is the same problem that we were hitting with JDK 1.5?

Following this hint, I determined inspected the serialization versions of the various versions of the class javax.xml.namespace.QName:

  • XFire's proposed "fix" version: -9120448754896609940L
  • BEA's version in WebLogic.jar: -9120448754896609940L
  • Sun JDK 1.5: 4418622981026545151L

I was surprised to see the XFire and BEA versions had the same version.  However, using javap on the three files revealed that the XFire and 1.5 versions had a new method, getPrefix().

So... I created a JAR with just the 1.5 version and threw it in JRockITs jre/lib/endorsed directory.  The WebLogic server failed to start up with an UnsupportedClassVersionError for version 49.0.  Next, I got the 1.5 source for QName and compiled it with a 1.4 compiler, and then put this class in a jar in JRockITs endorsed directory.  The server launched, and I was able to use a Java 1.5 client to access an AquaLogic DSP service.  Presumably, XFire would work as well, but I haven't tried that yet.

Blog Archive