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 he...@apache.org on 2005/08/01 07:28:39 UTC
svn commit: r226747 - in /webservices/axis/trunk/java/xdocs: migration.htm
navigation.xml
Author: hemapani
Date: Sun Jul 31 22:28:18 2005
New Revision: 226747
URL: http://svn.apache.org/viewcvs?rev=226747&view=rev
Log:
checked in the doc for migration from Axis 1.x to Axis2, checked in on bahalf of the Saminda
Added:
webservices/axis/trunk/java/xdocs/migration.htm
Modified:
webservices/axis/trunk/java/xdocs/navigation.xml
Added: webservices/axis/trunk/java/xdocs/migration.htm
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/migration.htm?rev=226747&view=auto
==============================================================================
--- webservices/axis/trunk/java/xdocs/migration.htm (added)
+++ webservices/axis/trunk/java/xdocs/migration.htm Sun Jul 31 22:28:18 2005
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD><TITLE>Migration.html</TITLE>
+<META http-equiv=content-type content="text/html; charset=ISO-8859-1">
+<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
+<META content=20050729;11431300 name=CREATED>
+<META content=20050730;12032000 name=CHANGED>
+<STYLE>@page {size: 8.27in 11.69in; margin: 0.79in; }
+P {
+ MARGIN-BOTTOM: 0.08in
+}
+</STYLE>
+</HEAD>
+<BODY>
+<H3><BIG>Migrating from Axis 1.x to Axis 2</BIG><BR></H3>
+<P style="MARGIN-BOTTOM: 0in"
+align=justify><BIG><BIG>Compatibility</BIG></BIG><BR><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Axis1.x and Axis2 have been evolved
+from different architectures.<BR><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Speed Axis2 is based on StAX API,
+which gives greater speed than SAX event base parsing that has been used in
+Axis1.x.<BR><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Stability Axis2 has fixed phases
+and for extensions an area of user defined phases. This allows far more
+stability and flexibility than Axis1.x.<BR><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Transport framework - Simple
+abstraction designing of transports (i.e., senders and listeners for SOAP over
+various protocols such as SMTP, etc), allow far more flexibility and the core of
+the engine is completely transport-independent.<BR><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>WSDL Support Axis2 supports
+version 1.1 and 2.0, which allow creating stubs and skeletons, to manipulate web
+service arena.</P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Component Oriented Architecture
+This is merely through archives (.mar and .aar) . Easily reusable components
+such as Handlers, Modules allow patterns processing for your applications, or to
+distribute to partners. Axis2 more concern on the Module concept rather
+Handler concept. Modules contain handlers that have been ordered through phase
+rules. which being ordered to specific service(s). </P>
+<P style="MARGIN-BOTTOM: 0in"><BR></P>
+<P style="MARGIN-BOTTOM: 0in"><BIG><BIG>Getting Started</BIG></BIG></P>
+<P style="MARGIN-BOTTOM: 0in">Lets look at a simple example of echoing at client
+API</P>
+<H5>Axis 1.x</H5><PRE>import ..<BR>public class TestClient {<BR> public static void main(String [] args) {<BR> try {<BR> String endpoint = ...<BR> Service service = new Service();<BR> Call call = (Call) service.createCall();<BR> call.setTargetEndpointAddress( new java.net.URL(endpoint) );<BR> call.setOperationName(new QName("http://soapinterop.org/", echoString"));<BR> String ret = (String) call.invoke( new Object[] { "Hello!" } );<BR> System.out.println("Sent 'Hello!', got '" + ret + "'");<BR> } catch (Exception e) {<BR> System.err.println(e.toString());<BR> }<BR> }<BR>}<BR><BR></PRE>
+<H5>Axis 2</H5><PRE><B>import ....</B><BR><B>public class EchoBlockingClient {</B><BR><B> private static EndpointReference targetEPR = new EndpointReference(</B><BR><B> AddressingConstants.WSA_TO,</B><BR><B> "http://127.0.0.1:8080/axis2/services/MyService/echo");</B><BR><B> public static void main(String[] args) {</B><BR><B> try {</B><BR><B> OMElement payload = ClientUtil.getEchoOMElement();</B><BR><B> Call call = new Call();</B><BR><B> call.setTo(targetEPR);</B><BR><B> call.setTransportInfo(Constants.TRANSPORT_HTTP,</B><B>Constants.TRANSPORT_HTTP,</B><B>false);</B><BR><B> //Blocking invocation</B><BR><B> OMElement result = (OMElement) call.invokeBlocking("echo",</B><B>payload);</B><BR><B> ...</B><BR><B> } catch (AxisFault axisFault) {</B><BR><B> axisFault.printStackTrace();</B><BR><B> } catch (XMLStreamException e) {</B><BR><B> e.printStackTrace();</B><BR><B> }</B><BR><B> }</B><BR><B>}</B></PRE>
+<P style="MARGIN-BOTTOM: 0in"><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>It has clearly depicted that the
+invocation in Axis2 is dealt with SOAP body element itself. Here the invocation
+is synchronous, and Axis2 can handle Asynchronous invocation as well. Above
+payload is the SOAP body element which should go in the Envelop. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Once the service is called through
+Stub in Axis2, payload is according to the data binding framework that will be
+using. So the extra work of payload will be vanished. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Apart from Synchronous invocation,
+Axis2 support Asynchronous invocation through invokeNonBlocking().
+Synchronous/Asynchronous invocations can handle both single/double HTTP
+connection. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>With the advance architecture Axis2
+is capable of handling Megabytes of Requests and Responses, which is far form
+Axis1.x. </P><BR>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BIG><BIG>Custom Deployment of
+Services, Handlers and Modules </BIG></BIG></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>In Axis 1.x deployment of services
+is via WSDD, which is for my opinion highly cumbersome. Service deployment in
+Axis2 is straight forward and dynamic. Dynamic behavior is from the
+Administrator facility given by development in server side. It's just a matter
+of creating a .aar file, and deploying it ,which more detail is given in the
+Axis2 user guide. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Axis2 is far way from Handler
+concept and more into the Module concept, which is abstractly speaking, a
+collection of handlers with Rules of governing. Modules created as a .mar file.
+It has module.xml, which is the brain behind manipulating handlers. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>When a service is called through a
+handler, it is just a matter of giving reference to the module that includes the
+handler in the service.xml. Apart from that a handler can be directly called to
+a particular service, via service.xml, no module is needed, and several handlers
+can be invoked when the handlers are registered with the proper phases. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Well, Services are hot deployable in
+Axis2 and dynamic, but Modules. This is one features, which is unique to
+Axis2.</P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>In addition this JWS services are
+handle through archives. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BIG><BIG>Transports for HTTP
+Connection</BIG></BIG></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Axis2 comes with two basic HTTP
+transport senders. HTTPTransportSender and CommonsHTTPTransportSender. The
+configuration of the transport is as follows, </P><PRE><P style="MARGIN-BOTTOM: 0in" align=justify>call.setTransportInfo(Constants.TRANSPORT_HTTP,</P> Constants.TRANSPORT_HTTP, false);<BR></PRE>
+<P style="MARGIN-BOTTOM: 0in" align=justify></P>
+<DIV style="TEXT-ALIGN: justify">This code snippet for HTTPTransportSender. The
+alternative transport sender is the CommonsHTTPTransportSender, which is called
+through, <BR></DIV><PRE><P style="MARGIN-BOTTOM: 0in" align=justify></P><P style="MARGIN-BOTTOM: 0in" align=justify>call.setTransportInfo(Constants.TRANSPORT_COMMONS_HTTP,<BR></P> Constants.TRANSPORT_HTTP,false);<BR></PRE>
+<P style="MARGIN-BOTTOM: 0in" align=justify>It should be noted that axis2.xml
+should be configured to call the commos transports, with the statement,</P><PRE><P style="MARGIN-BOTTOM: 0in" align=justify>...</P><P style="MARGIN-BOTTOM: 0in" align=left><transportSender name="commons-http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"></P> <parameter name="PROTOCOL" locked="xsd:false">HTTP/1.1</parameter><P style="MARGIN-BOTTOM: 0in" align=left> <parameter name="Transfer-Encoding" locked="xsd:false">chunked</parameter></P><P style="MARGIN-BOTTOM: 0in" align=left></transportSender></P><P style="MARGIN-BOTTOM: 0in" align=justify>...</P></PRE>
+<P style="MARGIN-BOTTOM: 0in" align=justify>In above snippet it should be noted
+that transport is configured to handle the chunked stream as well. Some web
+services, such as .NET web service invocations are done through this transport,
+as it handle all possible HTTP request and responses.</P>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BIG><BIG>Data Binding
+Support</BIG></BIG></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Xml-beans support data binding. In
+Axis2, xml is manipulated via AXIOM, which is based on StAX API. XML give full
+schema support. Thus, serialization and deserialization of Xml is handle in
+Axis2 via xml-data binding framework. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BIG><BIG>Best Usage</BIG></BIG></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify>Axis1.x and Axis2 have different
+ways of seen the SOAP stack. So the best way to migrate can be done through
+following the User guide and Architecture guide properly in Axis2. Axis2 is
+straight forward and friendly. </P>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BR></P>
+<P style="MARGIN-BOTTOM: 0in" align=justify><BR></P></BODY></HTML>
Modified: webservices/axis/trunk/java/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/navigation.xml?rev=226747&r1=226746&r2=226747&view=diff
==============================================================================
--- webservices/axis/trunk/java/xdocs/navigation.xml (original)
+++ webservices/axis/trunk/java/xdocs/navigation.xml Sun Jul 31 22:28:18 2005
@@ -29,7 +29,7 @@
<item name="Code Generation Tutorial" href="CodegenToolReference.html"/>
<item name="REST Support" href="rest-ws.html"/>
<item name="MTOM with Axis2" href="mtom-guide.html"/>
- <item name="M1 Documents" href="m1.html"/>
+ <item name="Migration from Axis 1.x" href="migration.htm"/>
</item>
<item name="Get Invloved" href="overview.html">
<item name="Checkout the Source" href="svn.html"/>