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 ch...@apache.org on 2006/03/23 05:29:36 UTC
svn commit: r388030 - in /webservices/axis2/trunk/java: release-notes.html
xdocs/0_95/index.html xdocs/0_95/tools/ xdocs/index.html
xdocs/latest/migration.html
Author: chatra
Date: Wed Mar 22 20:29:34 2006
New Revision: 388030
URL: http://svn.apache.org/viewcvs?rev=388030&view=rev
Log:
updating 0.95 docs
Removed:
webservices/axis2/trunk/java/xdocs/0_95/tools/
Modified:
webservices/axis2/trunk/java/release-notes.html
webservices/axis2/trunk/java/xdocs/0_95/index.html
webservices/axis2/trunk/java/xdocs/index.html
webservices/axis2/trunk/java/xdocs/latest/migration.html
Modified: webservices/axis2/trunk/java/release-notes.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/release-notes.html?rev=388030&r1=388029&r2=388030&view=diff
==============================================================================
--- webservices/axis2/trunk/java/release-notes.html (original)
+++ webservices/axis2/trunk/java/release-notes.html Wed Mar 22 20:29:34 2006
@@ -33,6 +33,7 @@
<li>AxisServlet auto start when application server get start up-<span style="color: #FF0000">New</span></li>
<li>Module dis-engagemnt support-<span style="color: #FF0000">New</span></li>
<li>Loading module (.mar) from classpath-<span style="color: #FF0000">New</span></li>
+ <li>Sessions scoping for Application, SOAP, Transport and Request levels-<span style="color: #FF0000">New</span></li>
</ol>
<h4>Axis2 Experimental
@@ -53,7 +54,17 @@
<li>Changed the way of adding action to mapping (wsamapping) from parameter to child element so with this version onward the way of adding mapping is as follows:</li>
<pre>
-<actionMapping>MyMapping</actionMapping></pre>
+<actionMapping>MyMapping</actionMapping>
+
+</pre>
+
+<li>Refactored following packages in Axiom.
+ <ul>
+ <li>org.apache.ws.commons.om.impl.llom.builder to org.apache.ws.commons.om.impl.builder</li>
+ <li>org.apache.ws.commons.om.impl.llom.mtom to org.apache.ws.commons.om.impl.mtom</li>
+ <li>org.apache.ws.commons.om.impl.llom.serialize to org.apache.ws.commons.om.impl.serialize</li>
+ <li>org.apache.ws.commons.om.impl.llom.traverse to org.apache.ws.commons.om.impl.traverse</li>
+ </li>
</ol>
<h3>Tools Included In This
Modified: webservices/axis2/trunk/java/xdocs/0_95/index.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/0_95/index.html?rev=388030&r1=388029&r2=388030&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/0_95/index.html (original)
+++ webservices/axis2/trunk/java/xdocs/0_95/index.html Wed Mar 22 20:29:34 2006
@@ -23,8 +23,8 @@
Eclipse Plug-in</a></li>
<li><a href="ServiceArchiveToolReference.html">Service Archive Wizard -
Eclipse Plug-in</a></li>
- <li><a href="tools/idea/Idea_plug-in_userguide.html">IntelliJ IDEA
- Plug-ins</a></li>
+ <!--<li><a href="tools/idea/Idea_plug-in_userguide.html">IntelliJ IDEA
+ Plug-ins</a></li>-->
</ul>
<h2>Additional References</h2>
@@ -39,6 +39,7 @@
<li><a href="api/index.html">Online Java Docs</a></li>
<li><a href="adb/adb-howto.html">ADB How-to</a></li>
<li><a href="security-module.html">WS-Security How-to</a></li>
+ <li><a href="WS_policy.html">Web Services Policy Support In Axis2</a></li>
</ul>
<h2>Other Tutorials</h2>
Modified: webservices/axis2/trunk/java/xdocs/index.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/index.html?rev=388030&r1=388029&r2=388030&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/index.html (original)
+++ webservices/axis2/trunk/java/xdocs/index.html Wed Mar 22 20:29:34 2006
@@ -49,13 +49,13 @@
<h2>Latest Release</h2>
-<p><b>22 March 2006 - Apache Axis2 Version 0.95 Released! (<a
-href="http://ws.apache.org/axis2/download.cgi">Download 0.95</a>)</b></p>
+<h3>22 March 2006 - Apache Axis2 Version 0.95 Released! (<a
+href="http://ws.apache.org/axis2/download.cgi">Download 0.95</a>)</h3>
<p>This release includes the following features:</p>
-<h3 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">Axis2 Complete
-Features List</h3>
+<h4 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">Axis2 Complete
+Features List</h4>
<ol type="1">
<li>AXIOM, an XML object model working on StAX (Streaming API for XML) parsing optimized for SOAP 1.1/1.2 Messages. This has complete XML infoset support.</li>
@@ -83,10 +83,11 @@
<li>AxisServlet auto start when application server get start up-<span style="color: #FF0000">New</span></li>
<li>Module dis-engagemnt support-<span style="color: #FF0000">New</span></li>
<li>Loading module (.mar) from classpath-<span style="color: #FF0000">New</span></li>
+ <li>Sessions scoping for Application, SOAP, Transport and Request levels-<span style="color: #FF0000">New</span></li>
</ol>
-<h4 id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad">Axis2 Experimental
-Features List</h4>
+<p id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad"><strong><em>Axis2 Experimental
+Features List</strong></em></p>
<ol type="1">
<li>Sessions scoping for Application, SOAP, Transport and Request levels</li>
@@ -95,27 +96,36 @@
<li>Generating ServiceClient for a given WSDL and invoke the corresponding service using generated client.</li>
</ol>
-<h3 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major Changes Since
-Last Release</h3>
+<h4 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major Changes Since
+Last Release</h4>
<ol type="1">
<li>Transport framework improvements (ListenerManager)</li>
<li>Changed the way of adding action to mapping (wsamapping) from parameter to child element so with this version onward the way of adding mapping is as follows:</li>
<pre>
-
-<actionMapping>MyMapping</actionMapping></pre>
+
+ <actionMapping>MyMapping</actionMapping>
+ </pre>
+ <li>Refactored following packages in Axiom.
+ <ul>
+ <li>org.apache.ws.commons.om.impl.llom.builder to org.apache.ws.commons.om.impl.builder</li>
+ <li>org.apache.ws.commons.om.impl.llom.mtom to org.apache.ws.commons.om.impl.mtom</li>
+ <li>org.apache.ws.commons.om.impl.llom.serialize to org.apache.ws.commons.om.impl.serialize</li>
+ <li>org.apache.ws.commons.om.impl.llom.traverse to org.apache.ws.commons.om.impl.traverse</li>
+ </li>
+ </ul>
</ol>
-<h3 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools Included In This
-Release</h3>
+<h4 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools Included In This
+Release</h4>
<ol type="1">
<li>Axis2 Web Application (Web App)</li>
- <li>WSDL2WS- eclipse Plugin/ Command line version/ IntelliJ IDEA Plugin</li>
- <li>Service Archive Wizard- eclipse Plugin/ IntelliJ IDEA Plugin</li>
+ <li>WSDL2WS- eclipse Plugin/ Command line version</li>
+ <li>Service Archive Wizard- eclipse Plugin</li>
</ol>
-<h3 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What's Still To
-Do?</h3>
+<h4 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What's Still To
+Do?</h4>
<p>See list of what we think needs to be done, and consider helping out if
you're interested & able!</p>
Modified: webservices/axis2/trunk/java/xdocs/latest/migration.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/migration.html?rev=388030&r1=388029&r2=388030&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/migration.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/migration.html Wed Mar 22 20:29:34 2006
@@ -312,6 +312,326 @@
serialization and de-serialization of XML is handled in Axis2 via the xml-data
binding framework.</p>
+<p>Below is an example of migrating an WSDL based Axis 1.x Web Service to Axis2. </p>
+
+<p>First, lets take a look at a simple document / literal style WSDL used in an Axis 1.x
+Web Service. This example assumes the name of simple.wsdl for the wsdl below: </p>
+
+<pre><?xml version="1.0" encoding="UTF-8"?>
+
+<definitions name="SimpleService" targetNamespace="http://simpleNS" xmlns:tns="http://simpleNS"
+xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://simpleNS/types">
+ <types>
+ <schema targetNamespace="http://simpleNS/types" xmlns:tns="http://simpleNS/types"
+xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <element name="simpleLogin">
+ <complexType>
+ <sequence>
+ <element name="user_name" type="xsd:string"/>
+ <element name="user_password" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="simpleLoginResponse">
+ <complexType>
+ <sequence>
+ <element name="soap_session_id" type="xsd:string"/>
+ <element name="web_user_name" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+</schema></types>
+ <message name="SimpleEndpoint_simpleLogin">
+ <part name="parameters" element="ns2:simpleLogin"/>
+ </message>
+ <message name="SimpleEndpoint_simpleLoginResponse">
+ <part name="result" element="ns2:simpleLoginResponse"/>
+ </message>
+ <portType name="SimpleEndpoint">
+ <operation name="simpleLogin">
+ <input message="tns:SimpleEndpoint_simpleLogin" name="SimpleEndpoint_simpleLogin"/>
+ <output message="tns:SimpleEndpoint_simpleLoginResponse" name="SimpleEndpoint_simpleLoginResponse"/>
+ </operation>
+ </portType>
+ <binding name="SimpleEndpointBinding" type="tns:SimpleEndpoint">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="simpleLogin">
+ <soap:operation soapAction="simpleLogin"/>
+ <input name="SimpleEndpoint_simpleLogin">
+ <soap:body use="literal"/>
+ </input>
+ <output name="SimpleEndpoint_simpleLoginResponse">
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="SimpleService">
+ <port name="SimpleEndpointPort" binding="tns:SimpleEndpointBinding">
+ <soap:address location="http://localhost:8080/axis/services/SimpleEndpointPort"/></port></service></definitions></pre>
+
+<p>The next step is run WSDL2Java on the wsdl. For axis 1.x, this example uses the following ant task:</p>
+
+<pre><target name="wsdl2java" description="axis 1.x">
+ <delete dir="output" />
+ <mkdir dir="output" />
+ <axis-wsdl2java
+ output="output"
+ verbose="true"
+ url="wsdl/simple.wsdl"
+ serverside="true"
+ skeletondeploy="true"
+ nowrapped="true"
+ >
+ </axis-wsdl2java>
+ </target></pre>
+
+<p>The axis 1.x ant task above takes the simple.wsdl under the directory 'wsdl' , and
+from that creates files under the directory 'output'. The files created are shown below:</p>
+
+<pre>output/
+output/simpleNS
+output/simpleNS/types
+output/simpleNS/types/SimpleLoginResponse.java
+output/simpleNS/types/SimpleLogin.java
+output/simpleNS/SimpleEndpoint.java
+output/simpleNS/SimpleEndpointBindingStub.java
+output/simpleNS/SimpleEndpointBindingSkeleton.java
+output/simpleNS/SimpleEndpointBindingImpl.java
+output/simpleNS/SimpleService.java
+output/simpleNS/SimpleServiceLocator.java
+output/simpleNS/deploy.wsdd
+output/simpleNS/undeploy.wsdd</pre>
+
+<p>Now lets run WSDL2Java with Axis2. In this example, the only change to simple.wsdl required for axis2 is that 'soap:address location' be changed to: </p>
+
+<pre><soap:address location="http://localhost:8080/axis2/services/SimpleEndpoint"/></port></service></definitions></pre>
+
+<p>In Axis2 the default databinding uses ADB. However, xmlbeans and jaxme are also supported. This example uses
+xmlbeans. For Axis2, our example uses the following ant task:</p>
+
+<pre><target name="wsdl2java">
+ <delete dir="output" />
+ <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
+ <classpath refid="axis.classpath"/>
+ <arg value="-d"/>
+ <arg value="xmlbeans"/>
+ <arg value="-uri"/>
+ <arg file="wsdl/simple.wsdl"/>
+ <arg value="-ss"/>
+ <arg value="-g"/>
+ <arg value="-sd"/>
+ <arg value="-o"/>
+ <arg file="output"/>
+ <arg value="-p"/>
+ <arg value="org.simple.endpoint"/>
+ </java>
+
+ <!-- Move the schema folder to classpath-->
+ <move todir="${build.classes}">
+ <fileset dir="output/resources">
+ <include name="*schema*/**/*.class"/>
+ <include name="*schema*/**/*.xsb"/>
+ </fileset>
+ </move>
+
+ </target></pre>
+
+<p>For an explanation of the Axis2 WSDL2Java ant task and its options, see the CodegenToolReference guide.</p>
+
+<p>A feature of xmlbeans is that there is one class file created with WSDL2java, and a series of xsb files.
+These must be referenced when compiling, and as the example shows these files are moved to a build directory </p>
+
+<p>The Axis2 WSDL2Java example also takes the simple.wsdl under the directory 'wsdl' , and
+from that creates files under the directory 'output'. The relevant non-xmlbean files created are shown below:</p>
+
+<pre>output/resources/services.xml
+output/src/org/simple
+output/src/org/simple/endpoint
+output/src/org/simple/endpoint/SimpleEndpointSkeleton.java
+output/src/org/simple/endpoint/SimpleEndpointMessageReceiverInOut.java
+output/src/org/simple/endpoint/SimpleEndpointCallbackHandler.java
+output/src/org/simple/endpoint/SimpleEndpointStub.java
+output/src/simplens
+output/src/simplens/types
+output/src/simplens/types/SimpleLoginDocument.java
+output/src/simplens/types/impl
+output/src/simplens/types/impl/SimpleLoginDocumentImpl.java
+output/src/simplens/types/impl/SimpleLoginResponseDocumentImpl.java
+output/src/simplens/types/SimpleLoginResponseDocument.java</pre>
+
+<p>The first important distinction is that while the Axis 1.x example generated deploy.wsdd and undeploy.wsdd,
+the Axis2 example created a services.xml. The files deploy.wsdd and services.xml are a breed apart, comming
+from different architectures. There is no direct parallel between them. See the Axis2 user guide for an
+explanation about services.xml</p>
+
+<p>Now we're ready to code. We'll start with Axis 1.x on the service side. To implement the business
+logic we'll change simpleNS/SimpleEndpointBindingImpl.java from: </p>
+
+<pre class="code">package simpleNS;
+
+public class SimpleEndpointBindingImpl implements simpleNS.SimpleEndpoint{
+ public simpleNS.types.SimpleLoginResponse simpleLogin(simpleNS.types.SimpleLogin parameters)
+ throws java.rmi.RemoteException {
+ return null;
+ }
+
+}</pre>
+
+<p>To: </p>
+
+<pre class="code">package simpleNS;
+
+public class SimpleEndpointBindingImpl implements simpleNS.SimpleEndpoint{
+ public simpleNS.types.SimpleLoginResponse simpleLogin(simpleNS.types.SimpleLogin parameters)
+ throws java.rmi.RemoteException {
+
+ String userName = parameters.getUser_name();
+ String password = parameters.getUser_password();
+ // do something with those vars...
+ return new simpleNS.types.SimpleLoginResponse("mySessionID", "username");
+ }
+
+}</pre>
+
+<p>In Axis 1.x, the next step is to compile the classes and put them in the Axis.war, and then run the admin
+client with the generated deploy.wsdd. You'll then look at the happy axis page to verify the service is
+installed correctly. </p>
+
+<p>Now lets code Axis2. In Axis 1.x, while the ant task shown in the example created a skeleton, a peek inside
+shows that the skeleton calls the binding implementation class. In Axis2 we work with the skeleton directly.
+To implement the business logic in the Axis2 generated classes we'll change
+org/simple/endpoint/SimpleEndpointSkeleton.java from: </p>
+
+<pre class="code">package org.simple.endpoint;
+ /**
+ * SimpleEndpointSkeleton java skeleton for the axisService
+ */
+ public class SimpleEndpointSkeleton {
+
+ /**
+ * Auto generated method signature
+ * @param param0
+ */
+ public simplens.types.SimpleLoginResponseDocument simpleLogin
+ (simplens.types.SimpleLoginDocument param0 ) throws Exception {
+ //Todo fill this with the necessary business logic
+ throw new java.lang.UnsupportedOperationException();
+ }
+}</pre>
+
+<p>To: </p>
+
+<pre class="code">package org.simple.endpoint;
+
+ import simplens.types.*;
+ import simplens.types.SimpleLoginResponseDocument.*;
+ import simplens.types.SimpleLoginDocument.*;
+ /**
+ * SimpleEndpointSkeleton java skeleton for the axisService
+ */
+ public class SimpleEndpointSkeleton {
+
+ /**
+ * Modified
+ * @param simpleLoginDocument
+ */
+ public SimpleLoginResponseDocument simpleLogin
+ (simplens.types.SimpleLoginDocument simpleLoginDocument){
+ //Todo fill this with the necessary business logic
+
+ SimpleLoginResponseDocument retDoc =
+ SimpleLoginResponseDocument.Factory.newInstance();
+
+ SimpleLoginResponse retElement =
+ SimpleLoginResponse.Factory.newInstance();
+ // Get parameters passed in
+ SimpleLogin simpleLogin = simpleLoginDocument.getSimpleLogin();
+ String userName = simpleLogin.getUserName();
+ String password = simpleLogin.getUserPassword();
+ // do something with those vars...
+
+ retElement.setWebUserName(userName);
+ retElement.setSoapSessionId("my random string");
+ retDoc.setSimpleLoginResponse(retElement);
+ return retDoc;
+ }
+}</pre>
+
+<p>In Axis2, the next step is to compile the classes, put them along with the generated services.xml in an AAR,
+and then hot deploy the AAR by placing it in the Axis2.war under WEB-INF/services . Point a browser to
+http://localhost:8080/axis2/listServices , and you should see the service 'SimpleService' ready for action.
+See the Axis2 user guide for more info.</p>
+
+<p>The last step is the client. Our Axis 1.x client for this example is: </p>
+
+<pre>package org;
+
+import simpleNS.*;
+import simpleNS.types.*;
+
+public class Tester {
+ public static void main(String [] args) throws Exception {
+ // Make a service
+ SimpleService service = new SimpleServiceLocator();
+
+ // Now use the service to get a stub which implements the SDI.
+ SimpleEndpoint port = service.getSimpleEndpointPort();
+
+ // set the params
+ SimpleLogin parameters = new SimpleLogin("username","password");
+ // Make the actual call
+ SimpleLoginResponse simpleLoginResponse = port.simpleLogin(parameters);
+ String session = simpleLoginResponse.getSoap_session_id();
+ String user = simpleLoginResponse.getWeb_user_name();
+ System.out.println("simpleLoginResponse, session: " + session + ", user: " + user);
+ }
+}</pre>
+
+<p>Finally, our Axis2 client for this example is: </p>
+
+<pre>package org;
+import simplens.types.*;
+import simplens.types.SimpleLoginDocument.*;
+import simplens.types.SimpleLoginResponseDocument.*;
+import simplens.types.impl.*;
+import org.simple.endpoint.*;
+
+public class Tester {
+ public static void main(String [] args) throws Exception {
+
+ // you may not need to pass in the url to the constructor - try the default no arg one
+ SimpleEndpointStub stub =
+ new SimpleEndpointStub(null, "http://localhost:8080/axis2/services/SimpleService");
+
+ SimpleLogin simpleLogin = SimpleLogin.Factory.newInstance();
+ simpleLogin.setUserName("userName");
+ simpleLogin.setUserPassword("password");
+
+ SimpleLoginDocument simpleLoginDocument =
+ SimpleLoginDocument.Factory.newInstance();
+
+ simpleLoginDocument.setSimpleLogin(simpleLogin);
+
+ SimpleLoginResponseDocument simpleLoginResponseDocument
+ = stub.simpleLogin(simpleLoginDocument);
+
+ SimpleLoginResponse simpleLoginResponse =
+ simpleLoginResponseDocument.getSimpleLoginResponse();
+
+ String session = simpleLoginResponse.getSoapSessionId();
+ String user = simpleLoginResponse.getWebUserName();
+ System.out.println("simpleLoginResponse, session: " + session + ", user: " + user);
+
+ }
+}</pre>
+
+<p>Axis2 clients also have asynchronous options via a Callback and alternatively 'Fire and forget'. See the
+user guide for more details. </p>
+
<h2>Best Usage</h2>
<p>Axis1.x and Axis2 have different ways of seeing the SOAP stack. So the best