1.1 Change Log
Forthcoming changes in Axis 1.2
Here are some things that are expected to happen in the next release of Axis, so
you can start preparing for them today.
- log4j.properties will no longer be in axis.jar. This is to avoid conflicts
with the configuration files in other bits of the application. You can prepare
for this change by removing the file from axis.jar and including your own log4j
configuration files in your application.
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