Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 51342 invoked from network); 25 Apr 2006 06:06:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 25 Apr 2006 06:06:29 -0000 Received: (qmail 15641 invoked by uid 500); 25 Apr 2006 06:06:25 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 15404 invoked by uid 500); 25 Apr 2006 06:06:24 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 15393 invoked by uid 500); 25 Apr 2006 06:06:24 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 15390 invoked by uid 99); 25 Apr 2006 06:06:24 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Apr 2006 23:06:24 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 24 Apr 2006 23:06:23 -0700 Received: (qmail 51078 invoked by uid 65534); 25 Apr 2006 06:06:03 -0000 Message-ID: <20060425060603.51075.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r396776 - in /webservices/axis2/trunk/java/xdocs/latest: OMTutorial.html rest-ws.html Date: Tue, 25 Apr 2006 06:06:02 -0000 To: axis2-cvs@ws.apache.org From: chatra@apache.org X-Mailer: svnmailer-1.0.8 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: chatra Date: Mon Apr 24 23:05:59 2006 New Revision: 396776 URL: http://svn.apache.org/viewcvs?rev=396776&view=rev Log: making final upgrades for release 1.0 Modified: webservices/axis2/trunk/java/xdocs/latest/OMTutorial.html webservices/axis2/trunk/java/xdocs/latest/rest-ws.html Modified: webservices/axis2/trunk/java/xdocs/latest/OMTutorial.html URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/OMTutorial.html?rev=396776&r1=396775&r2=396776&view=diff ============================================================================== --- webservices/axis2/trunk/java/xdocs/latest/OMTutorial.html (original) +++ webservices/axis2/trunk/java/xdocs/latest/OMTutorial.html Mon Apr 24 23:05:59 2006 @@ -15,7 +15,11 @@ end of header section --> -

OM Tutorial

+

AXIOM Tutorial

+ +

This document will contain information on the Object Model of Axis2. The +information include an introduction to AXIOM and it's functionalities, data +on some advanced options and limitations of OM.

Content

    @@ -68,7 +72,7 @@

    What is OM?

    OM stands for Object Model (also known as AXIOM - AXis Object Model) and -refers to the XML infoset model that is initialy developed for Apache Axis2. +refers to the XML infoset model that is initially developed for Apache Axis2. XML infoset refers to the information included inside the XML and for programmatical manipulation it is convenient to have a representation of this XML infoset in a language specific manner. For an object oriented language @@ -713,7 +717,9 @@

    Links

    -For basics in XML +
    Modified: webservices/axis2/trunk/java/xdocs/latest/rest-ws.html URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/rest-ws.html?rev=396776&r1=396775&r2=396776&view=diff ============================================================================== --- webservices/axis2/trunk/java/xdocs/latest/rest-ws.html (original) +++ webservices/axis2/trunk/java/xdocs/latest/rest-ws.html Mon Apr 24 23:05:59 2006 @@ -1,129 +1,145 @@ - - - - RESTful Web Services Support - - - -

    RESTful Web services Support

    - -

    REST provides access to resources through the two methods GET and POST. -REST Web services are a reduced subset of the usual Web service stack.

    - -

    The Axis2 REST implementation assumes the following properties:

    -
      -
    1. REST Web services are Synchronous and Request Response in nature.
    2. -
    3. When REST Web services are accessed via GET, the service and the - operations are identified based on the URL. The parameters are assumed as - parameters of the Web service. In this case the GET based REST Web - services supports only simple types as arguments.
    4. -
    5. POST based web services do not need a SOAP Envelope or a SOAP Body. - REST Web Services do not have Headers and the payload is sent - directly.
    6. -
    - -

    Axis2 can be configured as a REST Container and can be used to send and -receive RESTful Web services requests and responses. REST Web services can be -accessed in two ways, i.e. using HTTP GET and POST.

    - -

    Doing REST web services with HTTP POST

    - -

    The REST default HTTP interface is POST. It can be enabled in the -Server/Client side by adding the following line to the axis2.xml file.

    -< parameter name="enableREST" locked="false" > true -</parameter> - -

    It however acts as both a REST endpoint and SOAP endpoint. When a Message -is received, if the content type is text/xml and if the SOAP Action Headers -are missing, then the Message is treated as a RESTful Message. Else it is -treated as a usual SOAP Message.

    - -

    On sending a message out, the fact that the message is RESTful or not, can -be decided from the client API or by deployment descriptor of the client.

    -
      -
    1. By adding an entry in the client repositories axis2.xml file.
    2. -
    3. Setting as a property in client API e.g. -
      ...
      -Options options = new Options();
      -options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);
      -...
      -
    4. -
    - -

    Sample REST - HTTP POST Client

    - -

    There is an example named, userguide.clients.RESTClient.java which -demonstrates the usage of the above, using the "echo"operation of the -

    -
    userguide.example1.MyService 
    - -

    of the samples.The class source will be as follows:

    - - -
    public class RESTClient {
    -
    -    private static String toEpr = "http://localhost:8080/axis2/services/MyService";
    -    
    -    public static void main(String[] args) throws AxisFault {
    -
    -        Options options = new Options();
    -        options.setTo(new EndpointReference(toEpr));
    -        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
    -
    -        options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);
    -
    -        ServiceClient sender = new ServiceClient();
    -        sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
    -        sender.setOptions(options);
    -        OMElement result = sender.sendReceive(getPayload());
    -
    -        try {
    -            XMLStreamWriter writer = XMLOutputFactory.newInstance()
    -                    .createXMLStreamWriter(System.out);
    -            result.serialize(writer);
    -            writer.flush();
    -        } catch (XMLStreamException e) {
    -            e.printStackTrace();
    -        } catch (FactoryConfigurationError e) {
    -            e.printStackTrace();
    -        }
    -    }
    -    private static OMElement getPayload() {
    -        OMFactory fac = OMAbstractFactory.getOMFactory();
    -        OMNamespace omNs = fac.createOMNamespace(
    -                "http://example1.org/example1", "example1");
    -        OMElement method = fac.createOMElement("echo", omNs);
    -        OMElement value = fac.createOMElement("Text", omNs);
    -        value.addChild(fac.createText(value, "Axis2 Echo String "));
    -        method.addChild(value);
    -
    -        return method;
    -    }
    -}
    - -

    Access a REST Web Service Via HTTP GET

    - -

    Axis2 allow users to access Web services that have simple type parameters -via HTTP GET. For example the following URL requests the Version Service via -HTTP GET. But the Web service arriving via GET assumes REST. Other parameters -are converted in to XML and put in to the SOAP Body.

    -
    http://127.0.0.1:8080/axis2/services/version/getVersion
    - -

    Result can be shown in the browser as follows:

    - - -

    For example, the following request,

    -
    http://127.0.0.1:8080/axis2/services/version/getVersion
    -will be converted to the following SOAP Message for processing by -Axis2. -
     
    -   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    -      <soapenv:Body>   
    -          <axis2:getVersion xmlns:axis2="http://ws.apache.org/goGetWithREST" />
    -      </soapenv:Body>
    -   </soapenv:Envelope>
    -    
    - - - - + + + + RESTful Web Services Support + + + +

    RESTful Web services Support

    + +

    This document presents introduction on REST and REST with HTTP POST & +GET.

    + +

    Content

    + + + +

    Introduction

    + +

    REST (Representational State Transfer) provides access to resources +through the two methods GET and POST. REST Web services are a reduced subset +of the usual Web service stack.

    + +

    The Axis2 REST implementation assumes the following properties:

    +
      +
    1. REST Web services are Synchronous and Request Response in nature.
    2. +
    3. When REST Web services are accessed via GET, the service and the + operations are identified based on the URL. The parameters are assumed as + parameters of the Web service. In this case the GET based REST Web + services supports only simple types as arguments.
    4. +
    5. POST based Web services do not need a SOAP Envelope or a SOAP Body. + REST Web Services do not have Headers and the payload is sent + directly.
    6. +
    + +

    Axis2 can be configured as a REST Container and can be used to send and +receive RESTful Web services requests and responses. REST Web services can be +accessed in two ways, i.e. using HTTP GET and POST.

    + + +

    Doing REST Web Services with HTTP POST

    + +

    The REST default HTTP interface is POST. It can be enabled in the +Server/Client side by adding the following line to the axis2.xml file.

    +
    < parameter name="enableREST" locked="false" > true
    +</parameter> 
    + +

    It however acts as both a REST endpoint and SOAP endpoint. When a Message +is received, if the content type is text/xml and if the SOAP Action Headers +are missing, then the Message is treated as a RESTful Message. Else it is +treated as a usual SOAP Message.

    + +

    On sending a message out, the fact that the message is RESTful or not, can +be decided from the client API or by deployment descriptor of the client.

    +
      +
    1. By adding an entry in the client repositories axis2.xml file.
    2. +
    3. Setting as a property in client API e.g. +
      ...
      +Options options = new Options();
      +options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);
      +...
      +
    4. +
    + + +

    Sample REST - HTTP POST Client

    + +

    There is an example named, userguide.clients.RESTClient.java which +demonstrates the usage of the above, using the "echo"operation of the

    +
    userguide.example1.MyService 
    + +

    of the samples.The class source will be as follows:

    +
    public class RESTClient {
    +
    +    private static String toEpr = "http://localhost:8080/axis2/services/MyService";
    +    
    +    public static void main(String[] args) throws AxisFault {
    +
    +        Options options = new Options();
    +        options.setTo(new EndpointReference(toEpr));
    +        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
    +
    +        options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);
    +
    +        ServiceClient sender = new ServiceClient();
    +        sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
    +        sender.setOptions(options);
    +        OMElement result = sender.sendReceive(getPayload());
    +
    +        try {
    +            XMLStreamWriter writer = XMLOutputFactory.newInstance()
    +                    .createXMLStreamWriter(System.out);
    +            result.serialize(writer);
    +            writer.flush();
    +        } catch (XMLStreamException e) {
    +            e.printStackTrace();
    +        } catch (FactoryConfigurationError e) {
    +            e.printStackTrace();
    +        }
    +    }
    +    private static OMElement getPayload() {
    +        OMFactory fac = OMAbstractFactory.getOMFactory();
    +        OMNamespace omNs = fac.createOMNamespace(
    +                "http://example1.org/example1", "example1");
    +        OMElement method = fac.createOMElement("echo", omNs);
    +        OMElement value = fac.createOMElement("Text", omNs);
    +        value.addChild(fac.createText(value, "Axis2 Echo String "));
    +        method.addChild(value);
    +
    +        return method;
    +    }
    +}
    + + +

    Access a REST Web Service via HTTP GET

    + +

    Axis2 allow users to access Web services that have simple type parameters +via HTTP GET. For example the following URL requests the Version Service via +HTTP GET. But the Web service arriving via GET assumes REST. Other parameters +are converted in to XML and put in to the SOAP Body.

    +
    http://127.0.0.1:8080/axis2/services/version/getVersion
    + +

    Result can be shown in the browser as follows:

    + + +

    For example, the following request,

    +
    http://127.0.0.1:8080/axis2/services/version/getVersion
    +will be converted to the following SOAP Message for processing by +Axis2. +
     
    +   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    +      <soapenv:Body>   
    +          <axis2:getVersion xmlns:axis2="http://ws.apache.org/goGetWithREST" />
    +      </soapenv:Body>
    +   </soapenv:Envelope>
    +    
    + +