rubys 2002/10/06 17:34:03 Modified: java/docs Tag: axis1_0 axis-bibliography.bib integration-guide.html reading.html reference.html user-guide.html java/samples/userguide Tag: axis1_0 build.xml Added: java/docs Tag: axis1_0 AxisJMSSample.pdf java/samples/jms Tag: axis1_0 AxisJMSSample.pdf Log: Merge docs and sample buildfile fix from the HEAD to r1.0 Revision Changes Path No revision No revision 1.3.4.1 +4 -4 xml-axis/java/docs/axis-bibliography.bib Index: axis-bibliography.bib =================================================================== RCS file: /home/cvs/xml-axis/java/docs/axis-bibliography.bib,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -u -r1.3 -r1.3.4.1 --- axis-bibliography.bib 3 Sep 2002 20:30:51 -0000 1.3 +++ axis-bibliography.bib 7 Oct 2002 00:34:03 -0000 1.3.4.1 @@ -30,8 +30,8 @@ title="To infinity and beyond - the quest for {SOAP} interoperability", author="Sam Ruby", year=2002, - url="http://radio.weblogs.com/0101679/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html", - note="\href{http://radio.weblogs.com/0101679/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html}{http://radio.weblogs.com/0101679/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html}" + url="http://www.intertwingly.net/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html", + note="\href{http://www.intertwingly.net/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html}{http://www.intertwingly.net/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html}" } @misc{ruby:gump, @@ -45,14 +45,14 @@ title="A Busy Developer's Guide to {WSDL 1.1}", author="Sam Ruby", year=2002, - url="http://radio.weblogs.com/0101679/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html" + url="http://www.intertwingly.net/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html" } @misc{ruby:soap-intro, title="A Gentle Introduction to {SOAP}", author="Sam Ruby", year=2002, - url="http://radio.weblogs.com/0101679/stories/2002/03/16/aGentleIntroductionToSoap.html" + url="http://www.intertwingly.net/stories/2002/03/16/aGentleIntroductionToSoap.html" } 1.10.4.2 +174 -83 xml-axis/java/docs/integration-guide.html Index: integration-guide.html =================================================================== RCS file: /home/cvs/xml-axis/java/docs/integration-guide.html,v retrieving revision 1.10.4.1 retrieving revision 1.10.4.2 diff -u -r1.10.4.1 -r1.10.4.2 --- integration-guide.html 30 Sep 2002 13:19:22 -0000 1.10.4.1 +++ integration-guide.html 7 Oct 2002 00:34:03 -0000 1.10.4.2 @@ -29,14 +29,15 @@ Table of Contents</h3> <a href="#Introduction">Introduction</a> <br><a href="#Pluggable APIs">Pluggable APIs</a> -<br> <a href="#System Management Plug">System Management</a> +<br> <a href="#Components">Components</a> +<!-- <br> <a href="#System Management Plug">System Management</a> +--> <br> <a href="#Logging/Tracing Plug">Logging/Tracing</a> <br> <a href="#Configuration Plug">Configuration</a> <br> <a href="#Handlers Plug">Handlers</a> <br> <a href="#Internationalization Plug">Internationalization</a> <br> <a href="#Performance Monitoring Plug">Performance Monitoring</a> <br> <a href="#Encoding Plug">Encoding</a> -<br> <a href="#Compiler">Compiler</a> <br> <a href="#WSDL plug">WSDL Parser and Code Generator Framework</a> <h2> <a NAME="Introduction"></a>Introduction</h2> @@ -52,6 +53,156 @@ <a NAME="Pluggable APIs"></a>Pluggable APIs</h2> The following are the points that are pluggable in order to integrate AXIS into a web application server. +The first subsection details a number of pluggable components in general. +More details are provided for other components in the remaining +subsections. + +<h3> +<a NAME="Components"></a>Components</h3> +This section describes in general how to plug specializations +of various components into AXIS. + +<h4> +General Strategy +</h4> +To override the default behavior for a pluggable component: +<ul> +<li>Develop implementation of components interface</li> +<br> +<li>Define the implementation class to AXIS by either creating +a service definition file (prefered) +or by setting a system property. +<ul> +<br> +<li><strong>PREFERED:</strong> To create a service definition file:</li> +<ul> +<li>The name of the service definition file is derived from the interface +or abstract class which the service implements/extends: +<br> +<code>/META-INF/services/<componentPackage>.<interfaceName></code>.</li> +<li>Put the fully qualified class name of the implementation class on a line by itself +in the service definition file.</li> +</ul> +<br> +<li>Set system property: +<ul> +<li>The name of the system property is the name of the interface.</li> +<li>The value of the system property is the name of the implementation.</li> +<li>The optional system property name (in table, below) may be also be used.</li> +<br> +<li>Setting a system property is not prefered, particularly in a J2EE or other application +hosting environment, because it imposes a directive across all applications. +This may or may not be appropriate behavior. +If it is to be done, it should never be done from within a Web Application at runtime. +</li> +</ul> +</li> +</ul> +<br> +<li>Package the implementation class and, if used, +the service definition file in a JAR file +and/or place it where it can be picked up by a class loader (CLASSPATH).</li> +</ul> + +<h4> +Example 1 +</h4> +To override the default behavior for the Java Compiler: +<ul> +<li>An implementation of the <code>Compiler</code> interface is already provided for the <code>Jikes</code> compiler.</li> +<br> +<li>Create the service definition file named: +<br> +<code>/META-INF/services/org.apache.axis.components.compiler.Compiler</code></li> +<br> +<li>Add the following line to the service definition file: +<br> +<code>org.apache.axis.components.compiler.Jikes</code></li> +<br> +<li>Since <code>org.apache.axis.components.compiler.Jikes</code> +is packaged with AXIS, all that needs to be done is to ensure +that the service definition file is loadable by a class loader. +</li> +</ul> + +<h4> +Example 2 +</h4> +To override the default behavior for the SocketFactory +in an environment that does not allow resources to be +located/loaded appropriately, or where the behavior +needs to be forced to a specific implementation: +<ul> +<li>Provide an implementation of the <code>SocketFactory</code> interface, +for example <code>your.package.YourSocketFactory</code></li> +<br> +<li>Set the system property named +<br> +<code>org.apache.axis.components.net.SocketFactory</code> +<br> +to the value +<br> +<code>your.package.YourSocketFactory</code> +<br> +<p>This can be done by using the JVM commandline +<br> +<code>-Dorg.apache.axis.components.net.SocketFactory=your.package.YourSocketFactory</code> +<br> +</li> +<li>Ensure that the implementation class is loadable by a class loader. +</li> +</ul> + +<h4> +Reference +</h4> + +<table border="1"> +<tr> +<th>Component/Package</th> +<th>Factory</th> +<th>Interface</th> +<th>Optional System Property</th> +<th>Default Implementation</th> +</tr> +<tr> +<td><code>org.apache.axis.components.compiler</code></td> +<td><code>CompilerFactory.getCompiler()</code></td> +<td><code>Compiler</code></td> +<td><code>axis.Compiler</code></td> +<td><code>Javac</code></td> +</tr> +<tr> +<td><code>org.apache.axis.components.image</code></td> +<td><code>ImageIOFactory.getImageIO()</code></td> +<td><code>ImageIO</code></td> +<td><code>axis.ImageIO</code></td> +<td><code>MerlinIO, JimiIO, JDK13IO</code></td> +</tr> +<tr> +<td><code>org.apache.axis.components.jms</code></td> +<td><code>JMSVendorAdapterFactory.getJMSVendorAdapter()</code></td> +<td><code>JMSVendorAdapter</code></td> +<td><code></code></td> +<td><code>JNDIVendorAdapter</code></td> +</tr> +<tr> +<td><code>org.apache.axis.components.net</code></td> +<td><code>SocketFactoryFactory.getFactory()</code></td> +<td><code>SocketFactory</code></td> +<td><code>axis.socketFactory</code></td> +<td><code>DefaultSocketFactory</code></td> +</tr> +<tr> +<td><code>org.apache.axis.components.net</code></td> +<td><code>SocketFactoryFactory.getSecureFactory()</code></td> +<td><code>SocketFactory</code></td> +<td><code>axis.socketSecureFactory</code></td> +<td><code>JSSESocketFactory</code></td> +</tr> +</table> + +<!-- <h3> <a NAME="System Management Plug"></a>System Management</h3> What points are necessary to manage AXIS? @@ -87,6 +238,7 @@ <li> Example</li> </ul> +--> <h3><a NAME="Logging/Tracing Plug"></a>Logging/Tracing</h3> AXIS logging and tracing is based on the Logging component of the @@ -224,7 +376,7 @@ which currently provides methods that return client and server configurations. -<p>Our focus will be how to define the implemenation class for +<p>Our focus will be how to define the implementation class for <code>EngineConfigurationFactory</code>. <ul> @@ -251,7 +403,7 @@ <code>AxisClient = new AxisClient(config);</code> </ul> <br>The details may vary (server versus client, whether other factories are involved, etc). -Regardless, the point is that user code is responsible for +Regardless, the point is that integration code is responsible for calling <code>EngineConfigurationFactoryFinder(someContext)</code> and ensuring that the results are handed to AXIS. <code>someContext</code> is key to how the factory finder @@ -274,8 +426,8 @@ </li> <li>Locate all resources named <code>META-INF/services/org.apache.axis.EngineConfigurationFactory</code>. -Each line of such a file identifies the name of a class -implementing the interface. +Each line of such a resource identifies the name of a class +implementing the interface ('#' comments, through end-of-line). </li> <li> <code>org.apache.axis.configuration.EngineConfigurationFactoryServlet</code> @@ -301,7 +453,7 @@ <li> The implementation class is required to examine runtime environment (to optionally include the parameter). -If the environment can provide informatin required by +If the environment can provide information required by an EngineConfigurationFactory, then the <code>newFactory()</code> may return in instance of that factory. Otherwise, <code>newFactory()</code> must return null. @@ -332,13 +484,15 @@ from the current working directory!). <p>The default Servlet factory will open the Web Application resource -<code>/WEB-INF/server-config.wsdd</code>: +<code>/WEB-INF/server-config.wsdd</code> +(The name of this file may be changed using the +system property <code>axis.ServerConfigFile</code>): <ul> <li> -If it exists as a accessible file (i.e. not in a JAR/WAR file), -then it opens it as a file -(this allows changes to be saved, -if changes are allowed & made using the Admin tools). +If it exists as an accessible file (i.e. not in a JAR/WAR file), +then it opens it as a file. +This allows changes to be saved, +if changes are allowed & made using the Admin tools. </li> <li> If it does not exist as a file, then an attempt is made @@ -380,39 +534,8 @@ <h3> <a NAME="Handlers Plug"></a>Handlers</h3> -What new handlers might a system integrator wish to implement? -<ul> -<li> -Justification/Rationale - why is this plug point necessary? Spec -compliance?</li> - -<li> -Interfaces</li> - -<li> -Mechanism</li> - -<ul> -<li> -Life cycle</li> - -<li> -Exception handling - in general; plug-in shouldn't throw any exceptions -- does runtime ignore? Log?)</li> - -<li> -Multiple thread support? Ie., is synchronization required?</li> -</ul> - -<li> -Configuration/reconfiguration</li> - -<li> -Default behavior if not plugged.</li> - -<li> -Example</li> -</ul> +See the <a href="architecture-guide.html">Architecture +Guide</a> for current information on Handlers. <h3> <a NAME="Internationalization Plug"></a>Internationalization</h3> @@ -592,7 +715,8 @@ <h3> <a NAME="Performance Monitoring Plug"></a>Performance Monitoring</h3> -How can we monitor the performance of AXIS? +AXIS does not yet include specific Performance Monitoring Plugs. +<!-- <ul> <li> Justification/Rationale - why is this plug point necessary? Spec @@ -625,9 +749,12 @@ <li> Example</li> </ul> +--> <h3> <a NAME="Encoding Plug"></a>Encoding</h3> +AXIS does not yet include an Encoding Plug. +<!-- How can a system integrator plug in other encoding mechanisms such as SOAP 1.2 or optimized XML-based encoding? <ul> @@ -662,43 +789,7 @@ <li> Example</li> </ul> - -<h3> -<a NAME="Compiler"></a>Compiler</h3> -How can a system integrator plug in other encoding mechanisms such as SOAP -1.2 or optimized XML-based encoding? -<ul> -<li> -Justification/Rationale - why is this plug point necessary? Spec -compliance?</li> - -<li> -Interfaces</li> - -<li> -Mechanism</li> - -<ul> -<li> -Life cycle</li> - -<li> -Exception handling - in general; plug-in shouldn't throw any exceptions -- does runtime ignore? Log?)</li> - -<li> -Multiple thread support? Ie., is synchronization required?</li> -</ul> - -<li> -Configuration/reconfiguration</li> - -<li> -Default behavior if not plugged.</li> - -<li> -Example</li> -</ul> +--> <h3> <a NAME="WSDL plug"></a>WSDL Parser and Code Generator Framework</h3> 1.3.4.1 +80 -21 xml-axis/java/docs/reading.html Index: reading.html =================================================================== RCS file: /home/cvs/xml-axis/java/docs/reading.html,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -u -r1.3 -r1.3.4.1 --- reading.html 3 Sep 2002 20:30:51 -0000 1.3 +++ reading.html 7 Oct 2002 00:34:03 -0000 1.3.4.1 @@ -22,20 +22,21 @@ <img SRC="axis.jpg" height=96 width=176></h1></center> <h1>Recommended Reading</h1> - +<a name="specifications"> <h2>Specifications</h2> +</a> <ol> <li> <a href="http://www.w3.org/TR/SOAP/"> SOAP Version 1.1 - </a> + </a><br> Remember that SOAP1.1 is not an official W3C standard. </li> <li> <a href="http://www.w3.org/TR/soap12-part0/"> SOAP Version 1.2 Part 0: Primer - </a> + </a><br> This and the follow-on sections cover what the W3C think SOAP is and how it should be used. @@ -43,7 +44,7 @@ <li> <a href="http://www.w3.org/TR/wsdl"> Web Services Description Language (WSDL) 1.1 - </a> + </a><br> </li> <li> <a href="http://ietf.org/rfc/rfc2616.txt"> @@ -53,13 +54,13 @@ <li> <a href="http://java.sun.com/xml/downloads/jaxrpc.html"> JAX-RPC Specification 1.0 - </a> + </a><br> The public API for Web Services in Java. </li> <li> <a href="http://www.w3.org/TR/xmlschema-0/"> XML Schema Part 0: Primer - </a> + </a><br> The W3C XML Schema, (WXS) is one of the two sets of datatype SOAP supports, the other being the SOAP Section 5 datatypes that predate WXS. Complicated as it is, it is useful to have a vague understanding @@ -68,42 +69,58 @@ </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"> + <a href="http://www.intertwingly.net/stories/2002/03/16/aGentleIntroductionToSoap.html"> A Gentle Introduction to SOAP </a> + Sam Ruby tries not to scare people. </li> <li> - <a href="http://radio.weblogs.com/0101679/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html"> + <a href="http://www.intertwingly.net/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html"> A Busy Developer's Guide to WSDL 1.1 - </a> -</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> + </a><br> + Quick intro to WSDL by the eponymous Sam Ruby. </li> +<li> + <a href="http://www.ociweb.com/javasig/knowledgebase/2002Sep/"> + Axis - an open source web service toolkit for Java</a><br> + by Mark Volkmann, Partner, Object Computing, Inc. A very good introduction + to SOAP and Axis. Highly Recommended. + <li> <a href="http://manning.com/antbook"> - Java develoment with Ant (chapter 15) - </a> + Java development with Ant + </a><br> + by Hatcher and Loughran. + A book on Ant development which covers Web Service development with Axis, + along with other topics relevant to Java developers using Ant. The Web Service + chapter, chapter 15, is free to download. + </li> <li> <a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html"> When Web Services Go Bad - </a> + </a><br> + Steve Loughran tries to scare people. + A painful demonstration how deployment and system management are + trouble spots in a production service, followed by an espousal of a + deployment-centric development process. + </li> <li> <a href="http://servlet.java.sun.com/javaone/sf2002/conf/sessions/index.en.jsp"> - JavaOne 2002,Web Services Today and Tomorrow </a> + JavaOne 2002,Web Services Today and Tomorrow </a><br> (Java Developer connection login required) </li> <li> <a href="http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXRPC.html"> - The Java Web Services Tutorial: Java API for XML-based RPC </a> + The Java Web Services Tutorial: Java API for XML-based RPC </a><br> This is part of Sun's guide to their Java Web Services Developer Pack. The examples are all based on their JWSDP, but as Axis also implements JAX-RPC, they may all port to Axis. @@ -113,7 +130,7 @@ <li> <a href="http://java.sun.com/blueprints/webservices/using/webservbp.html"> - Using Web Services Effectively.</a> + Using Web Services Effectively.</a><br> Blissfully ignoring issues such as versioning, robustness and security and all the other details a production Web Service needs, instead pushing EJB as @@ -123,12 +140,46 @@ </li> +<li> + <a href="http://www.pankaj-k.net/axis4tag/"> + Web Services with JAX-RPC and Apache Axis.</a><br> + by Pankaj Kumar. + Starting with a 10000 ft. view of Web Services, prior technologies, current and emerging + standards, it quickly gets into the nitty-gritties of using JAX-RPC and Apache Axis + for writing and executing programs. Has a nice coverage of different invocation styles -- + generated stubs, dynamic proxy and dynamic invocation interface. A good place to start + if you are new to Web Services and Axis. + <br/> + <br/> + The author also maintains a <a href="http://www.pankaj-k.net/webservices/index.html"> + Web Services Resource Page</a>. + +</li> </ol> +<a name="interop"> +<h2>Interoperability</h2> +</a> +<ol> +<li> + <a href="http://www.intertwingly.net/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"> @@ -145,5 +196,13 @@ Investigating the Limits of SOAP Performance for Scientific Computing </a> </li> +<li> + <a href="http://www.w3.org/TR/webarch/"> + Architectural Principles of the World Wide Web + </a> +</li> + + + </ol> 1.9.4.2 +78 -53 xml-axis/java/docs/reference.html Index: reference.html =================================================================== RCS file: /home/cvs/xml-axis/java/docs/reference.html,v retrieving revision 1.9.4.1 retrieving revision 1.9.4.2 diff -u -r1.9.4.1 -r1.9.4.2 --- reference.html 30 Sep 2002 13:19:22 -0000 1.9.4.1 +++ reference.html 7 Oct 2002 00:34:03 -0000 1.9.4.2 @@ -30,7 +30,6 @@ </ul> <h2> <a name="Tools"></a>Tools Reference</h2> <h3><a name="WSDL2Java"></a>WSDL2Java Reference</h3> -<h4>Other WSDL2Java details</h4> <p>Usage: java org.apache.axis.wsdl.WSDL2Java [options] WSDL-URI <br> Options: <br> -h, --help <br> @@ -39,6 +38,18 @@ -v, --verbose <br> print informational messages <br> + -n, --noImports <br> + + only generate code for the immediate WSDL document <br> + -O, --timeout <argument> <br> + + timeout in seconds (default is 45, specify -1 to disable) <br> + -D, --Debug <br> + + print debug information <br> + -W, --noWrapped<br> + + turn off support for "wrapped" document/literal<br> -s, --server-side <br> emit server-side bindings for web service <br> @@ -69,38 +80,56 @@ -t, --testCase <br> emit junit testcase class for web service <br> - -n, --noImports <br> - - only generate code for the immediate WSDL document <br> -a, --all <br> generate code for all elements, even unreferenced ones <br> - -D, --Debug <br> + -T, --typeMappingVersion <br> - print debug information <br> + indicate 1.1 or 1.2. The default is 1.1 (SOAP 1.1 JAX-RPC compliant. + + 1.2 indicates SOAP 1.1 encoded.) <br> -F, --factory <argument> <br> - - name of the JavaWriterFactory class for extending Java generation functions - <br> - - ompliant) <br> - -O, --timeout <argument> <br> - - timeout in seconds (default is 45, specify -1 to disable) <br> + + name of a custom class that implements GeneratorFactory interface + + (for extending Java generation functions) <br> + -H, --helperGen <br> + + emits separate Helper classes for meta data <br> -U, --user <argument> <br> username to access the WSDL-URI <br> -P, --password <argument> <br> password to access the WSDL-URI <br> - -W, --noWrapped<br> - - turn off support for "wrapped" document/literal<br> <h4> -h, --help</h4> Print the usage statement and exit <h4> -v, --verbose</h4> See what the tool is generating as it is generating it. +<h4> -n, --noImports</h4> +Only generate code for the WSDL document that appears on the command line. +The default behaviour is to generate files for all WSDL documents, the immediate +one and all imported ones. +<h4> -O, --timeout</h4> +Timeout in seconds. The default is 45. Use -1 to disable the timeout. +<h4> -D, --Debug</h4> +Print debug information, which currently is WSDL2Java's symbol table. Note that this is only printed after the symbol table is complete, ie., after the WSDL is parsed successfully. +<h4>-W, --noWrapped</h4> +This turns off the special treatment of what is called "wrapped" document/literal +style operations. By default, WSDL2Java will recognize the following +conditions:<br> +<ul> + <li>If an input message has is a single part.</li> + <li>The part is an element.</li> + <li>The element has the same name as the operation</li> + <li>The element's complex type has no attributes<br> + </li> +</ul> +When it sees this, WSDL2Java will 'unwrap' the top level element, and treat each +of the components of the element as arguments to the operation. This type of WSDL +is the default for Microsoft .NET web services, which wrap up RPC style arguments +in this top level schema element. <h4> -s, --server-side</h4> Emit the server-side bindings for the web service: <ul> @@ -172,10 +201,6 @@ 0 or false for primitive types). Like the generated implementation file, the generated test case file could be considered a template that you may fill in. -<h4> -n, --noImports</h4> -Only generate code for the WSDL document that appears on the command line. -The default behaviour is to generate files for all WSDL documents, the immediate -one and all imported ones. <h4> -a, --all</h4> Generate code for all elements, even unreferenced ones. By default, WSDL2Java only generates code for those elements in the WSDL file that are referenced. @@ -197,13 +222,13 @@ then that portType will be generated and only those types that are referenced by that portType. <p>Note that the anchor is searched for in the WSDL file appearing on the command line, <b>not</b> in imported WSDL files. This allows one WSDL file to import constructs defined in another WSDL file without the nuisance of having all the imported WSDL file's constructs generated. -<h4> -D, --Debug</h4> -Print debug information, which currently is WSDL2Java's symbol table. <h4> -T, --typeMappingVersion <argument></h4> Indicate 1.1 or 1.2. The default is 1.2 (SOAP 1.2 JAX-RPC compliant). <h4> -F, --factory <argument></h4> Used to extend the functionality of the WSDL2Java emitter. The argument is the name of a class which extends JavaWriterFactory. +<h4> -H, --helperGen</h4> +Emits separate Helper classes for meta data. <h4> -U, --user <argument></h4> This username is used in resolving the WSDL-URI provided as the input to WSDL2Java. If the URI contains a username, this will override the command line switch. @@ -212,21 +237,6 @@ This password is used in resolving the WSDL-URI provided as the input to WSDL2Java. If the URI contains a password, this will override the command line switch. <br> -<h4>-W, --noWrapped</h4> -This turns off the special treatment of what is called "wrapped" document/literal -style operations. By default, WSDL2Java will recognize the following -conditions:<br> -<ul> - <li>If an input message has is a single part.</li> - <li>The part is an element.</li> - <li>The element has the same name as the operation</li> - <li>The element's complex type has no attributes<br> - </li> -</ul> -When it sees this, WSDL2Java will 'unwrap' the top level element, and treat each -of the components of the element as arguments to the operation. This type of WSDL -is the default for Microsoft .NET web services, which wrap up RPC style arguments -in this top level schema element.<br> <h3><a name="Java2WSDL"></a>Java2WSDL Reference</h3> <p>Here is the help message generated from the current tool: </p> @@ -300,13 +310,9 @@ <tt><font color="#993366"> -O, --outputImpl <argument></font></tt> <br> <tt><font color="#993366"> - output Implementation WSDL filename, setting this causes --outputWsdlMode to - be ignored</font></tt> <br> - <tt><font color="#993366"> -f, --factory - <argument></font></tt> <br> + output Implementation WSDL filename, setting this causes</font></tt> <br> <tt><font color="#993366"> - name of the Java2WSDLFactory class for extending WSDL generation functions</font></tt> - <br> + --outputWsdlMode to be ignored</font></tt> <br> <tt><font color="#993366"> -i, --implClass <argument></font></tt> <br> <tt><font color="#993366"> @@ -338,6 +344,22 @@ <tt><font color="#993366"> indicate 1.1 or 1.2. The default is 1.2 (SOAP 1.2 JAX-RPC compliant)</font></tt> <br> + <tt><font color="#993366"> -A, --soapAction + <argument></font></tt> <br> + <tt><font color="#993366"> + value of the operations soapAction field. Values are DEFAULT,</font></tt> <br> + <tt><font color="#993366"> + OPERATION or NONE. OPERATION forces soapAction to the name</font></tt> <br> + <tt><font color="#993366"> + of the operation. DEFAULT causes the soapAction to be set</font></tt> <br> + <tt><font color="#993366"> + according to the operations meta data (usually ""). NONE</font></tt> <br> + <tt><font color="#993366"> + forces the soapAction to "". The default is DEFAULT.</font></tt> <br> + <tt><font color="#993366"> -y, --style + <argument></font></tt> <br> + <tt><font color="#993366"> + the style of the wsdl document: RPC, DOCUMENT or WRAPPED</font></tt> <br> <tt><font color="#993366">Details:</font></tt> <br> <tt><font color="#993366"> portType element name= <.portTypeName value> OR <class-of-portType name></font></tt> <br> @@ -352,27 +374,27 @@ <p><b>-h , --help</b> <br> Prints the help message. -<p><b>-o, --output <WSDL file></b> <br> - Indicates the name of the output WSDL file. If not specified, a suitable - default WSDL file is written into the current directory. <p><b>-I, --input <WSDL file></b> <br> Optional parameter that indicates the name of the input wsdl file. The output wsdl file will contain everything from the input wsdl file plus the new constructs. If a new construct is already present in the input wsdl file, it is not added. This option is useful for constructing a wsdl file with multiple ports, bindings, or portTypes. +<p><b>-o, --output <WSDL file></b> <br> + Indicates the name of the output WSDL file. If not specified, a suitable + default WSDL file is written into the current directory. <p><b>-l, --location <location></b> <br> Indicates the url of the location of the service. The name after the last slash or backslash is the name of the service port (unless overridden by the -s option). The service port address location attribute is assigned the specified value. -<p><b>-p, --portTypeName <name></b> <br> +<p><b>-P, --portTypeName <name></b> <br> Indicates the name to use use for the portType element. If not specified, the class-of-portType name is used. <p><b>-b, --bindingName <name></b> <br> Indicates the name to use use for the binding element. If not specified, the value of the --servicePortName + "SoapBinding" is used. -<p><b>-s, --serviceElementName <name></b> <br> +<p><b>-S, --serviceElementName <name></b> <br> Indicates the name of the service element. If not specified, the service element is the <portTypeName>Service. <p><b>-s, --servicePortName <name></b> <br> @@ -411,13 +433,9 @@ Use this option to indicate the name of the output implementation WSDL file. If specified, Java2WSDL will produce interface and implementation WSDL files. If this option is used, the -w option is ignored. -<p><b>-f, --factory <class></b> <br> - (No longer used.) <p><b>-i, --implClass <impl-class></b> <br> Sometimes extra information is available in the implementation class file. Use this option to specify the implementation class. -<p><b>-f, --factory <class></b> <br> - (No longer used.) <p><b>-x, --exclude <list></b> <br> List of methods to not exclude from the wsdl file. <p><b>-y, --style <argument></b> <br> @@ -429,6 +447,13 @@ List of classes which stop the Java2WSDL inheritance search. <p><b>-T, --typeMappingVersion <version></b> <br> Choose the default type mapping registry to use. Either 1.1 or 1.2.</p> +<p><b>-A, --soapAction <argument></b> <br> + The value of the operations soapAction field. Values are DEFAULT, OPERATION or NONE. OPERATION forces soapAction to the name of the operation. DEFAULT causes the soapAction to be set according to the operation's meta data (usually ""). NONE forces the soapAction to "". The default is DEFAULT. +<p><b>-y, --style <argument></b> <br> + The style of the WSDL document: RPC, DOCUMENT or WRAPPED. + If RPC, a rpc/encoded wsdl is generated. + If DOCUMENT, a document/literal wsdl is generated. + If WRAPPED, a document/literal wsdl is generated using the wrapped approach. <h2><a name="Deployment"></a>Deployment (WSDD) Reference</h2> Note : all the elements referred to in this section are in the WSDD namespace, namely "http://xml.apache.org/axis/wsdd/". 1.71.2.2 +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.71.2.1 retrieving revision 1.71.2.2 diff -u -r1.71.2.1 -r1.71.2.2 --- user-guide.html 30 Sep 2002 13:19:22 -0000 1.71.2.1 +++ user-guide.html 7 Oct 2002 00:34:03 -0000 1.71.2.2 @@ -600,8 +600,15 @@ <h2><a NAME="DataMapping"></a>XML <-> 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 "ID" and "HREF" 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> No revision No revision 1.1.2.1 +0 -0 xml-axis/java/docs/AxisJMSSample.pdf <<Binary file>> No revision No revision 1.1.2.1 +0 -0 xml-axis/java/samples/jms/AxisJMSSample.pdf <<Binary file>> No revision No revision 1.4.4.1 +1 -1 xml-axis/java/samples/userguide/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/xml-axis/java/samples/userguide/build.xml,v retrieving revision 1.4 retrieving revision 1.4.4.1 diff -u -r1.4 -r1.4.4.1 --- build.xml 11 Sep 2002 21:09:08 -0000 1.4 +++ build.xml 7 Oct 2002 00:34:03 -0000 1.4.4.1 @@ -48,7 +48,7 @@ <target name="copy" depends="setenv"/> <target name="compile" depends="copy"> - <javac srcdir="." destdir="${build.dest}" debug="${debug}" fork="${javac.fork}"> + <javac srcdir="${axis.home}" destdir="${build.dest}" debug="${debug}" fork="${javac.fork}"> <classpath> <path refid="classpath"/> </classpath>