Axis Change Log
Changes from 1.3 final
Many bugfixes, including:
- Prevented an NPE when curMsg is null
- Fixed memory leaks
- Fixed incorrect serialization of extended types in arrays
- Fixed garbage collection for TypeDesc mappings
- Fixed a problem with exception deserialization
- Updated outdated version numbers in documentation
- Fixed an issue that caused non-Sun JVMs to generate a CurrentModificationException
- Fixed a problem with wsdl2java-generated class constructors
Changes from 1.2.1 final
- Support Axis inside Applets
- Upgrade versions of dependency jars
- Updated xmlbeans serializer/deserializer
- Fixes for SAAJ
- Fixes for Code Generation
- Fixes for tools
- Fixes for Runtime
- Fixes for Performance
- Fixes for various attachments problems
- Fixes for Memory Leaks
- Cleanup support for JavaBeans with array-type properties
- Extract attachment streams directly from http request (w/o intermediate files)
- GC Fixes for long standing servers (Geronimo)
- Preliminary support for MTOM
Changes from 1.2final
- Cleanup array handling for rpc/lit and doc/lit
- Enhancements to HTTPSender/CommonsHTTPSender (including better cookie support)
- Generate array of wrappers for soapenc array nillable elements
- Better handling of elementFormDefault during dynamic wsdl generation
- Fix for gracefully handling IncompatibleClassChangeError in websphere/weblogic
- Better SAAJ support (dirty flag was not set leading to serialization problems)
- Fix out-of-memory errors for services without attachments returning large response messages
- Last but not the least more test cases...
Changes from 1.2rc3
- Tons of changes to typemapping system to better support jax-rpc1.1 and .NET
- Improved SAAJ 1.2 support
- Much better for rpc/lit and doc/lit (especially for arrays)
- Map schema "wrapped" arrays (with inner <item> elements) into arrays of the item type, instead of JavaBeans, by default. Introduce the "-w" or "--wrapArrays" option to WSDL2Java to switch back to the earlier behavior.
- Fix some WS-I related bugs. Makes it easier to deploy WS-I BP compatible services.
- Internationalized happyaxis jsp pages.
- Updated to latest dependency jars. (ex wsdl4j-1.5.1.jar)
- Improved commons httpclient support.
- Support for sending and receiving multiple cookies
- Lots of fixes for performance enhancements (including eliminating ThreadLocal's)
- Improved JMX support - Start/Stop server/services and deploy/modify services
Changes from 1.2beta2
- When generating WSDL, don't change the scoping rules for type mappings. In other words, use the most specific mappings just like we do for message processing.
- Fix problem with version string
- Remove JAXP interfaces (should come from jaxp.jar, not jaxrpc.jar)
Changes from 1.1
- Preliminary SAAJ 1.2 support!
- Improved doc/literal support
- Improved handling of array types + WSDL generation
- More logical type mapping registration (SOAP-ENC types are in a separate registry which then delegates to the default one)
- Improved schema support (we deal with lists and groups now)
- ServiceDesc metadata is now more generic - ServiceDesc is an interface and JavaServiceDesc implements it to do specific Java processing.
- Throw fault when bad values for "mustUnderstand" attribute are parsed
- log4j.properties is no longer in axis.jar. This is to avoid conflicts
with the configuration files in other bits of the application.
- Many bugfixes. See docs/svnlog.txt
Changes from 1.0 to 1.1 that may break your code
- We have changed how we map http URLs to packages, such that any directories
in the URL are used as well as the hostname. The previous behavior was a defect,
as it would import WSDL from the same site into the same place. If you do
not explicitly state the mappings of URIs to packages, things may now end
up in different places
- The default socket timeout for clients is now 60 seconds, not infinity.
You can use the setTimeout() option on any binding (cast it to an org.apache.axis.client.Stub
first) to change this.
- The API for writing custom schema from a Serializer (writeSchema()) has
changed! We now return an Element which should be suitable for either dropping
under an <element> or <attribute> declaration as an anonymous
type OR for putting a name="" attribute on and making global in
the schema. See any of our included serializers (MapSerializer is a good'un)
for an example.
Changes from 1.1RC2
For a full list of ALL changes in CVS since 1.1RC2, click
Changes from 1.0 to 1.1
- Vastly improved SOAP 1.2 support
- There is a new email transport in transport/mail
- Added serializers/deserializers for Castor compatibility
- Improved WSDL schema generation APIs for custom types
- Added CORBA and RMI providers
- Improved EJBProvider's ability to be a "good EJB citizen" (deals
better with JNDI, etc)
- Improved multiref deserialization code
- Axis supports JMS for reliable messaging between client and server. Note
that the actual wire format of JMS messages is vendor-specific at present,
so you may not be able to use this to connect arbitrary JMS clients and servers
without special bridging software. Refer to your particular JMS vendor for
details. (rule-of-thumb is "if you can get a JMS connection working,
we can talk SOAP over it." :))
- We include a more recent version of wsdl4j.jar (23/mar/2003).
- The misnamed org.apache.axis.encoding.DefaultSOAP12TypeMappingImpl is now
called DefaultSOAPEncodingTypeMappingImpl (the old class is still there but
- Log4J 1.2.8 is the version of log4J we use, though Axis still works with
older versions (i.e. we dont use the XML configuration mechanism.).
- Many more WSDL and interop issues reported (thank you!) and fixed.
- One late breaking interop fix was a workaround for a bug in .NET1.0, which
does not like empty arrays very much. This fix is not enabled by default.
If you have trouble with .NET1.0 clients handling arrays, look up axis.sendMinimizedElements
in the global configuaration section of the reference manual.
- Axis Ant tasks are now documented, and are much enhanced.
- Fixed a bug where clients running Java1.4 needed servlet.jar on their classpath
a bug with Axis shutdown on Tomcat 3.3.1
- Various documentation tweaks: improved installation guide, more reference
documentation and a new security guide for anyone using Axis in production.
- On the subject of security, three security issues were fixed; two related
to XML entity/file inclusion on inbound messages and one potentially enabling
- Tcpmon lets you specify delays in message handling: sleep times in milliseconds
every so-many bytes sent or received. This is useful if you want to see what
happens to your client application over a slow link. Usually it becomes clear
that your client application grinds to a halt unless all the calls are in
a separate thread from any GUI.
- Attachments are extended with direct access to the filename, and the ability
to detach the file from the AttachmentPart so it wont get deleted
on cleanup. Yes, attachments should now get automatically cleaned up when
their owning AttachmentPart is finalized. Look at the javadocs for
- CommonsHTTPSender updated to use Jakarta
Commons's HTTPClient 2.0 RC3
Improvements in Exception Handling
The JAX-RPC specification of exceptions is now implemented; you may well be able
to send abitrary exceptions over the wire and have them retranslated into Java
Exceptions at the far end. Of course, non-Java destinations have a little problem there,
all they get are the XML details to make sense of somehow. There is a lot to
be said for creating, filling and throwing an AxisFault directly, and documenting
the faultdetails elements for callers of all languages to make sense of. Axis now
makes it easier to work with these details; consult at the AxisFault javadocs to
see the new fault detail methods.
Axis no longer reports AxisFaults at INFO level on the client or server,
unless you configure the logging parameters to do so;
see the reference documents for details on how to do this. There is one
exception: we do log server-side any AxisFaults created from RunTimeExceptions
that are thrown by web service methods you implement. This is because those
are usually bugs (like null pointer exceptions) that service developers like
to know about before
For security reasons we have stopped sending stack traces over the wire to
callers by default. The reference manual shows how to enable this on
Finally, we know we still have more to do to get exceptions fully under control.
For example, global OnFault handlers are apparently not called consistently,
and we need to do a lot more interop testing across platforms and languages.
We also need a willing volunter to provide a guide to exceptions in SOAP and
More changelogs can be found on the