|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-03-18 02:09:10
|
Hi,
> (Quick question: by "Axis" do you mean Apache Axis? I couldn't find any
> mention of ebXML in a quick perusal of the web site.)
We would like to share some experiences in using Apache Axis in
our development. We ever switched to Axis by replacing those JAXM stuff
in Hermes. However, this bare replacement doesn't work at all because of
some ClassCastException's thrown by Axis which are probably bugs. Thus,
we patched Axis 1.1beta to make it work temporarily and submitted bug
reports to Axis. Currently, codes in Axis 1.1RC seem to fix some of the
previous problems but there are other induced problems that we cannot
formally claim we support both Axis and JAXM SOAP implementation. But
the current situation is not bad. We are confident that we can support
Axis soon as well.
> Not sure if this is what you're referring to, but here goes.
> In com.sun.xml.messaging.saaj.soap.AttachmentPartImpl.java, there's a
> static initialiser:
> static {
> DataHandler.setDataContentHandlerFactory(new
> DataContentHandlerFactoryImpl());
> };
>
> ......
>
> I downloaded the source code, figured out what the problems were, and
> fixed them. I now use my jaxm-runtime-patched.jar and saaj-ri-patched.jar
> in my application and can have Hermes and a Hermes client running in the
> same Tomcat.
>
> I logged these as bugs with Sun a few weeks ago, but I've had no response
> at all. If you can get these things fixed ASAP using more efficient
> channels, I certainly won't complain. :-)
Peter, I also undergo this hacking and patching process. I exactly
know what you mean by that static initializer because I have been tracing
JAXM source and JAF a long time ago when I have to make Hermes work under
Tomcat 4.0.3. However, my feeling is that it is not the bug of JAF because
it is a passive library to be invoked. The caller (which is also the class
loader) of JAF should somehow probably handle how to set DataHandler once
and only once. You may blame this is SAAJ bug. But I would also blame this
as Tomcat's bug as well before the version 4.0.6. Now, I can run both 4.0.6
and 4.1.18 in Windows and Unix platform with Hermes instances without
obvious problem. The reason why I say so is that Tomcat is an app server
and is responsible in loading different libraries and manages the order
of classpath. But 4.0.3, 4.0.4 are obviously different from 4.0.6 in terms
of classpath loading. That's why we have to provide different patch methods
in Hermes for a specific version. Being a simple user, I would consider that
ideally speaking, I need not patch those xalan.jar, xmlParsersAPI.jar,
xercesImpl.jar in common/lib(endorsed) or I would expect the app server
would manage all kinds of libraries probably in individual webapps and
harmonize with those provided by the app server itself (common/lib, etc.)
Is my interpretation wrong or unfair?
Anyway, 4.0.6 LE and 4.1.18 LE should be quite ok now. At least,
the patch way is deterministic. :)
Regards,
CY
----------------------------------------------------------------------------
Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/
Technology Officer,
Centre for E-Commerce Infrastructure Development,
The University of Hong Kong
----------------------------------------------------------------------------
|