Hello all, I've made a few modifications to Axis, which addresses a few issues that we've encountered. If possible, I'ld like to see these changes included in the main-tree.
The changes include the following: 1) Inherited interfaces do not work (bug #7722) 2) Java2WSDL does not support inherited methods (bug #7718) 3) AxisClient re-uses session-cookies 4) Axis uses wrong classloader. The first two bugs are reported to bugzilla, the third/fourth one is not (yet). When Axis is maintaining session-info, it does this for *ALL* services. When I create a new Service object, the session-cookies are re-used. This means that all AxisClients share the same SOAP-session (!!!) on the server. To fix this, I've made the following changes to Service.java and Call.java : - Service.java now has a 'Transport' member, and getTransport() and setTransport(). - Call.java now tries to get the Transport from the Service, instead of using the Hashtable with TransportImpls: // Do we already have a transport for this address? - //Transport transport = (Transport) transportImpls.get(address); + Transport transport = service.getTransport(); and later: - //transportImpls.put(address, transport); + service.setTransport(transport); As you can see, there was a Hashtable of transports _GLOBALLY_ (static). When two different Service objects are trying to call the same URL-Address, they share the session-cookie ! The 4th bug involves the ClassLoader per MessageContext. I'm wondering why we need a ClassLoader per MessageContext when one is not using .JWS support ? The current implementation in MessageContext uses the Thread.currentThread().getContextClassLoader(). This ussually works, but in a webserver environment (I'm using Oracle OC4J / OrionServer), this screws up sometimes. I ended up with classes that were loaded by the ClassLoader in another J2EE application, which caused a lot of ClassCastExceptions. I'm not sure why we need to worry about ClassLoaders (there must be a very good reason for it), but when I turn it off inside MessageContext.java, my application works like a charm ! I hope that these changes will improve the quality of Axis, and help other people that encountered the same issues as I have. Keep up the good work ! With kind regards, Barry Lagerweij