You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by st...@apache.org on 2002/10/04 18:29:49 UTC

cvs commit: xml-axis/java/docs reading.html user-guide.html

stevel      2002/10/04 09:29:49

  Modified:    java/docs reading.html user-guide.html
  Log:
  more on our friend interop
  
  Revision  Changes    Path
  1.5       +25 -8     xml-axis/java/docs/reading.html
  
  Index: reading.html
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/docs/reading.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- reading.html	2 Oct 2002 03:21:18 -0000	1.4
  +++ reading.html	4 Oct 2002 16:29:48 -0000	1.5
  @@ -22,8 +22,9 @@
   <img SRC="axis.jpg" height=96 width=176></h1></center>
   
   <h1>Recommended Reading</h1>
  -
  +<a name="specifications">
   <h2>Specifications</h2>
  +</a>
   <ol>
   
   <li>
  @@ -68,7 +69,10 @@
   
   
   </ol>
  +
  +<a name="presentations">
   <h2>Explanations, articles and presentations</h2>
  +</a>
   <ol>
   <li>
       <a href="http://radio.weblogs.com/0101679/stories/2002/03/16/aGentleIntroductionToSoap.html">
  @@ -82,12 +86,6 @@
       Quick intro to WSDL by the eponymous Sam Ruby.
   </li>
   <li>
  -    <a href="http://radio.weblogs.com/0101679/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html">
  -    To infinity and beyond - the quest for SOAP interoperability
  -    </a><br>
  -    Sam Ruby explains why Interop matters so much.
  -</li>
  -<li>
       <a href="http://manning.com/antbook">
       Java development with Ant 
       </a><br>
  @@ -152,9 +150,28 @@
   
   
   </ol>
  +<a name="interop">
  +<h2>Interoperability</h2>
  +</a>
  +<ol>
  +<li>
  +    <a href="http://radio.weblogs.com/0101679/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html">
  +    To infinity and beyond - the quest for SOAP interoperability
  +    </a><br>
  +    Sam Ruby explains why Interop matters so much.
  +</li>
  +<li>
  +    <a href="http://www.iseran.com/Steve/papers/interop/">
  +    The Wondrous Curse of Interoperability
  +    </a><br>
  +    Steve Loughran on interop challenges (especially between .NET and Axis),
  +    and how to test for them. 
  +</li>
  +</ol>
   
  +<a name="advanced">
   <h2>Advanced topics</h2>
  -
  +</a>
   <ol>
   <li>
       <a href="http://www.extreme.indiana.edu/xgws/papers/sc00_paper/index.html">
  
  
  
  1.74      +27 -16    xml-axis/java/docs/user-guide.html
  
  Index: user-guide.html
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/docs/user-guide.html,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- user-guide.html	30 Sep 2002 01:39:24 -0000	1.73
  +++ user-guide.html	4 Oct 2002 16:29:48 -0000	1.74
  @@ -600,8 +600,15 @@
   <h2><a NAME="DataMapping"></a>XML &lt;-> Java Data Mapping in Axis</h2>
   <h3>How your Java types map to SOAP/XML types</h3>
   
  -The JAX-RPC specification determines how Java types are mapped to WSDL and vice versa. 
  -So read chapters 4 and 5 of the <a href="http://java.sun.com/xml/jaxrpc/">
  +Interoperability, <i>interop</i> is an ongoing challenge
  +between SOAP implementations. If you want your service to work with other platforms
  +and implementations, you do need to understand the issues. There are some
  +<a href="reading.html#interop">external articles</a> on the subject that act
  +as a good starting place. 
  +  
  +The basic mapping between Java types and WSDL/XSD/SOAP in Axis is determined by 
  +The JAX-RPC specification. Read chapters 4 and 5 of the 
  +<a href="http://java.sun.com/xml/jaxrpc/">
   specification</a> to fully understand how things are converted. Here are
   some of the salient points. 
   
  @@ -627,10 +634,12 @@
     may choose to return a value of <tt>nil</tt>, then the primitive data types 
     are replaced by their wrapper classes, such as Byte, Double, Boolean, etc. 
   <h4>SOAP Encoding Datatypes</h4>
  -<p> Alongside the XSD datatypes are the SOAP 'section 5' datatypes that are all 
  +<p> Alongside the XSD datatypes are the SOAP 'Section 5' datatypes that are all 
     nillable, and so only ever map to the wrapper classes. These types exist because 
     they all support the &quot;ID&quot; and &quot;HREF&quot; attributes, and so 
     will be used when in an rpc-encoded context to support multi-ref serialization.
  +  
  +  
   <h3>Exceptions</h3>
   
   This is an area which causes plenty of confusion, and indeed, the author
  @@ -689,7 +698,7 @@
   at least not be as rigorous as Java in the rules as to how exceptions
   must be handled. 
   
  -<h4>What Axis can not send via SOAP</h4>
  +<h3>What Axis can send via SOAP with restricted Interoperability</h3>
   
   <h5>Unsigned data</h5>
   
  @@ -703,30 +712,32 @@
   with unsigned support from using them. At least, until 
   a revision of JAX-RPC adds this. 
   
  +<h5>Java Collections</h5>
  +
  +Some of the Collection classes, such as <tt>HashTable</tt> do have
  +serializers, but there is no formal interoperability with other SOAP
  +implementations, and nothing in the SOAP specifications which covers
  +complex objects. The most reliable way to send aggregate objects is to
  +use arrays. In particular, .NET cannot handle them, though many Java SOAP 
  +implementations can marshall and unmarshall hash tables.  
  +
  +
  +<h3>What Axis can not send via SOAP</h3>
   
  -<h5>Arbitrary Objects without registration</h5>
  +
  +<h5>Arbitrary Objects without Pre-Registration</h5>
   
   You cannot send arbitrary Java objects over the wire and expect them to
   be understood at the far end. With RMI you can send and receive
   <tt>Serializable</tt> Java objects, but that is because you are running
   Java at both ends. Axis will only send objects for which there is a
  -registered Axis serializer. This document will shortly show how to use
  +registered Axis serializer. This document shows below how to use
   the BeanSerializer to serialize any class that follows the JavaBean
   pattern of accessor and mutator. To serve up objects you must either
   register your classes with this BeanSerializer, or there must be
   serialization support built in to Axis.
   
   
  -<h5>Java Collections</h5>
  -
  -Some of the Collection classes, such as <tt>HashTable</tt> do have
  -serializers, but there is no formal interoperability with other SOAP
  -implementations, and nothing in the SOAP specifications which covers
  -complex objects. The most reliable way to send aggregate objects is to
  -use arrays. 
  -
  -This is an ongoing issue with SOAP interop; expect it to slowly improve
  -over time.
   
   <h5>Remote References</h5>