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 di...@apache.org on 2007/07/14 06:37:36 UTC
svn commit: r556222 [6/22] - in /webservices/axis2/trunk/java/xdocs: ./
@axis2_version_dir@/ @axis2_version_dir@/adb/ @axis2_version_dir@/jibx/
@axis2_version_dir@/src/ download/0_9/ download/0_91/ download/0_92/
download/0_93/ download/0_94/ download/...
Copied: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jibx/jibx-unwrapped-example.xml (from r556217, webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jibx/jibx-unwrapped-example.html)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jibx/jibx-unwrapped-example.xml?view=diff&rev=556222&p1=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jibx/jibx-unwrapped-example.html&r1=556217&p2=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jibx/jibx-unwrapped-example.xml&r2=556222
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jibx/jibx-unwrapped-example.html (original)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jibx/jibx-unwrapped-example.xml Fri Jul 13 21:37:26 2007
@@ -1,270 +1,280 @@
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-<html>
-<head>
- <meta http-equiv="content-type" content="">
- <title>JiBX unwrapped document/literal</title>
- <link href="../../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
-</head>
-
-<body>
-<h1>JiBX Unwrapped document/literal</h1>
-
-<p>Code generation for JiBX data binding converts operations defined by a Web
-service to method calls. In the most general case of document/literal
-(doc/lit) Web services the generated methods each take a single parameter
-object and return a single result object. This type of interface can be
-painful for developers because it adds both a layer of indirection and
-potentially a large number of extra classes (one input and one output class
-for each generated method).</p>
-
-<p>Fortunately, there's an alternative way of generating methods that gives a
-much more usable API for many Web services. This alternative is called
-<i>unwrapping</i>, and the service definitions that it applies to are called
-<i>wrapped</i> definitions. The key difference that qualifies a service
-definition as wrapped is the structure of the input and output elements used
-for operations.</p>
-
-<p>Here's a sample wrapped WSDL (partial) by way of an example:</p>
-<pre><wsdl:definitions targetNamespace="http://ws.sosnoski.com/library/wsdl"
- xmlns:tns="http://ws.sosnoski.com/library/types"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/">
-
- <wsdl:types>
-
- <schema elementFormDefault="qualified"
- targetNamespace="http://ws.sosnoski.com/library/types"
- xmlns="http://www.w3.org/2001/XMLSchema">
-
- <element name="getBook">
- <complexType>
- <sequence>
- <element name="isbn" type="string"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="getBookResponse">
- <complexType>
- <sequence>
- <element name="book" minOccurs="0" type="tns:BookInformation"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="addBook">
- <complexType>
- <sequence>
- <element name="type" type="string"/>
- <element name="isbn" type="string"/>
- <element name="author" minOccurs="0" maxOccurs="unbounded" type="string"/>
- <element name="title" type="string"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="addBookResponse">
- <complexType>
- <sequence>
- <element name="success" type="boolean"/>
- </sequence>
- </complexType>
- </element>
-
- <complexType name="BookInformation">
- <sequence>
- <element name="author" minOccurs="0" maxOccurs="unbounded" type="string"/>
- <element name="title" type="string"/>
- </sequence>
- <attribute name="type" use="required" type="string"/>
- <attribute name="isbn" use="required" type="string"/>
- </complexType>
-
- </schema>
-
- </wsdl:types>
-
- <wsdl:message name="getBookRequest">
- <wsdl:part element="wns:getBook" name="parameters"/>
- </wsdl:message>
-
- <wsdl:message name="getBookResponse">
- <wsdl:part element="wns:getBookResponse" name="parameters"/>
- </wsdl:message>
-
- <wsdl:message name="addBookRequest">
- <wsdl:part element="wns:addBook" name="parameters"/>
- </wsdl:message>
-
- <wsdl:message name="addBookResponse">
- <wsdl:part element="wns:addBookResponse" name="parameters"/>
- </wsdl:message>
-
- <wsdl:portType name="Library">
-
- <wsdl:operation name="getBook">
- <wsdl:input message="wns:getBookRequest" name="getBookRequest"/>
- <wsdl:output message="wns:getBookResponse" name="getBookResponse"/>
- </wsdl:operation>
-
- <wsdl:operation name="addBook">
- <wsdl:input message="wns:addBookRequest" name="addBookRequest"/>
- <wsdl:output message="wns:addBookResponse" name="addBookResponse"/>
- </wsdl:operation>
-
- </wsdl:portType>
- ...
-</wsdl:definitions></pre>
-
-<p>This WSDL defines a service with just two operations: <b>getBook</b> and
-<b>addBook</b>. The <b>getBook</b> operation takes a <i>getBook</i> element
-as input, and returns a <i>getBookResponse</i> element as output, while
-<b>addBook</b> takes an <i>addBook</i> element as input and returns an
-<i>addBookResponse</i> as output. Each of these input and output elements in
-turn consists of a sequence of child elements, with some of the child
-elements defined directly using standard schema types and others referencing
-user-defined schema types.</p>
-
-<p>As I said up front, this WSDL qualifies for unwrapped handling using JiBX.
-Here's the body of the client interface generated when using unwrapping (the
-<i>-uw</i> option for WSDL2Java):</p>
-<pre> public interface LibraryJibxUnwrapped {
-
-
- /**
- * Auto generated method signatures
- * @param type* @param isbn* @param author* @param title
- */
- public boolean addBook(
- java.lang.String type,java.lang.String isbn,java.lang.String[] author,java.lang.String title) throws java.rmi.RemoteException
-
-
- ;
-
-
- /**
- * Auto generated method signatures
- * @param isbn
- */
- public com.sosnoski.ws.library.jibx.beans.Book getBook(
- java.lang.String isbn) throws java.rmi.RemoteException
-
-
- ;
-
-
-
- //
- }</pre>
-
-<p>You can see that the JiBX code generation converted the operations into
-simple method call interfaces without introducing any extraneous objects (see
-<a href="./jibx-doclit-example.html">JiBX Document/Literal Example</a> for
-the interface generated when unwrapping is not used). The server-side
-interface is the same.</p>
-
-<p>The key points that allow unwrapped handling with JiBX are:</p>
-<ol>
- <li>Each operation either accepts no input, or the input consists of a
- single element.</li>
- <li>Each input element is defined as a schema <i>complexType</i> consisting
- of a <i>sequence</i> of any number of child elements.</li>
- <li>Each operation either generates no output, or the output consists of a
- single element.</li>
- <li>Each output element is defined as a schema <i>complexType</i>
- consisting of a <i>sequence</i> that's either empty or contains a single
- child element.</li>
- <li>The child elements of both inputs and outputs are defined using
- <i>type</i> references, rather than an embedded type definitions.</li>
-</ol>
-
-<p>You also need to supply an appropriate JiBX binding definition (using the
-<i>-Ebindingfile {file}</i> parameter for WSDL2Java - see <a
-href="./jibx-codegen-integration.html#codegen">JiBX Codegen Integration -
-WSDL2Java usage</a> for more details). This must define abstract
-<i>mapping</i>s for the <i>complexType</i>s referenced by child elements of
-the inputs and outputs, with a <i>type-name</i> attribute matching the schema
-<i>complexType</i> name. If the child elements reference schema
-<i>simpleType</i> definitions the binding must also define a <i>format</i>s
-for each <i>simpleType</i>, with a <i>label</i> attribute matching the schema
-<i>simpleType</i> name. The binding definition must also specify the
-<i>force-classes='true'</i> attribute on the <i>binding</i> element.</p>
-
-<p>For example, here's a binding definition that matches the above WSDL:</p>
-<pre><binding force-classes="true" xmlns:tns="http://ws.sosnoski.com/library/types">
-
- <namespace uri="http://ws.sosnoski.com/library/types" default="elements"/>
-
- <mapping abstract="true" class="com.sosnoski.ws.library.jibx.beans.Book"
- type-name="tns:BookInformation">
- <value name="type" style="attribute" field="m_type"/>
- <value name="isbn" style="attribute" field="m_isbn"/>
- <collection field="m_authors">
- <value name="author"/>
- </collection>
- <value name="title" field="m_title"/>
- </mapping>
-
-</binding></pre>
-
-<p>And here's the actual <code>com.sosnoski.ws.library.jibx.beans.Book</code>
-class:</p>
-<pre>package com.sosnoski.ws.library.jibx.beans;
-
-public class Book
-{
- private String m_type;
- private String m_isbn;
- private String m_title;
- private String[] m_authors;
-
- public Book() {}
-
- public String getType() {
- return m_type;
- }
-
- public String getIsbn() {
- return m_isbn;
- }
-
- public String getTitle() {
- return m_title;
- }
-
- public String[] getAuthors() {
- return m_authors;
- }
-}</pre>
-
-<p>The JiBX code generation for Axis2 currently requires that classes
-coresponding to unwrapped child elements (such as
-<code>com.sosnoski.ws.library.jibx.beans.Book</code>, in this case) provide
-public default (no-argument) constructors.</p>
-
-<p>JiBX handling allows the child elements of both inputs and outputs to be
-optional (with <i>nillable='true'</i>, <i>minOccurs='0'</i>, or both),
-providing the binding converts these child elements to object types rather
-than primitive types. It also allows repeated child elements (with
-<i>minOccurs='unbounded'</i>, or any value of <i>minOccurs</i> greater than
-one), representing the repeated elements as arrays of the corresponding
-object or primitive types.</p>
-</body>
-</html>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content=
+"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
+<meta http-equiv="content-type" content="" />
+<title>JiBX unwrapped document/literal</title>
+<link href="../../css/axis-docs.css" rel="stylesheet" type=
+"text/css" media="all" />
+</head>
+<body>
+<h1>JiBX Unwrapped document/literal</h1>
+<p>Code generation for JiBX data binding converts operations
+defined by a Web service to method calls. In the most general case
+of document/literal (doc/lit) Web services the generated methods
+each take a single parameter object and return a single result
+object. This type of interface can be painful for developers
+because it adds both a layer of indirection and potentially a large
+number of extra classes (one input and one output class for each
+generated method).</p>
+<p>Fortunately, there's an alternative way of generating methods
+that gives a much more usable API for many Web services. This
+alternative is called <i>unwrapping</i>, and the service
+definitions that it applies to are called <i>wrapped</i>
+definitions. The key difference that qualifies a service definition
+as wrapped is the structure of the input and output elements used
+for operations.</p>
+<p>Here's a sample wrapped WSDL (partial) by way of an example:</p>
+<pre>
+<wsdl:definitions targetNamespace="http://ws.sosnoski.com/library/wsdl"
+ xmlns:tns="http://ws.sosnoski.com/library/types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/">
+
+ <wsdl:types>
+
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://ws.sosnoski.com/library/types"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="getBook">
+ <complexType>
+ <sequence>
+ <element name="isbn" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getBookResponse">
+ <complexType>
+ <sequence>
+ <element name="book" minOccurs="0" type="tns:BookInformation"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="addBook">
+ <complexType>
+ <sequence>
+ <element name="type" type="string"/>
+ <element name="isbn" type="string"/>
+ <element name="author" minOccurs="0" maxOccurs="unbounded" type="string"/>
+ <element name="title" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="addBookResponse">
+ <complexType>
+ <sequence>
+ <element name="success" type="boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="BookInformation">
+ <sequence>
+ <element name="author" minOccurs="0" maxOccurs="unbounded" type="string"/>
+ <element name="title" type="string"/>
+ </sequence>
+ <attribute name="type" use="required" type="string"/>
+ <attribute name="isbn" use="required" type="string"/>
+ </complexType>
+
+ </schema>
+
+ </wsdl:types>
+
+ <wsdl:message name="getBookRequest">
+ <wsdl:part element="wns:getBook" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="getBookResponse">
+ <wsdl:part element="wns:getBookResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="addBookRequest">
+ <wsdl:part element="wns:addBook" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="addBookResponse">
+ <wsdl:part element="wns:addBookResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="Library">
+
+ <wsdl:operation name="getBook">
+ <wsdl:input message="wns:getBookRequest" name="getBookRequest"/>
+ <wsdl:output message="wns:getBookResponse" name="getBookResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="addBook">
+ <wsdl:input message="wns:addBookRequest" name="addBookRequest"/>
+ <wsdl:output message="wns:addBookResponse" name="addBookResponse"/>
+ </wsdl:operation>
+
+ </wsdl:portType>
+ ...
+</wsdl:definitions>
+</pre>
+<p>This WSDL defines a service with just two operations:
+<b>getBook</b> and <b>addBook</b>. The <b>getBook</b> operation
+takes a <i>getBook</i> element as input, and returns a
+<i>getBookResponse</i> element as output, while <b>addBook</b>
+takes an <i>addBook</i> element as input and returns an
+<i>addBookResponse</i> as output. Each of these input and output
+elements in turn consists of a sequence of child elements, with
+some of the child elements defined directly using standard schema
+types and others referencing user-defined schema types.</p>
+<p>As I said up front, this WSDL qualifies for unwrapped handling
+using JiBX. Here's the body of the client interface generated when
+using unwrapping (the <i>-uw</i> option for WSDL2Java):</p>
+<pre>
+ public interface LibraryJibxUnwrapped {
+
+
+ /**
+ * Auto generated method signatures
+ * @param type* @param isbn* @param author* @param title
+ */
+ public boolean addBook(
+ java.lang.String type,java.lang.String isbn,java.lang.String[] author,java.lang.String title) throws java.rmi.RemoteException
+
+
+ ;
+
+
+ /**
+ * Auto generated method signatures
+ * @param isbn
+ */
+ public com.sosnoski.ws.library.jibx.beans.Book getBook(
+ java.lang.String isbn) throws java.rmi.RemoteException
+
+
+ ;
+
+
+
+ //
+ }
+</pre>
+<p>You can see that the JiBX code generation converted the
+operations into simple method call interfaces without introducing
+any extraneous objects (see <a href=
+"./jibx-doclit-example.html">JiBX Document/Literal Example</a> for
+the interface generated when unwrapping is not used). The
+server-side interface is the same.</p>
+<p>The key points that allow unwrapped handling with JiBX are:</p>
+<ol>
+<li>Each operation either accepts no input, or the input consists
+of a single element.</li>
+<li>Each input element is defined as a schema <i>complexType</i>
+consisting of a <i>sequence</i> of any number of child
+elements.</li>
+<li>Each operation either generates no output, or the output
+consists of a single element.</li>
+<li>Each output element is defined as a schema <i>complexType</i>
+consisting of a <i>sequence</i> that's either empty or contains a
+single child element.</li>
+<li>The child elements of both inputs and outputs are defined using
+<i>type</i> references, rather than an embedded type
+definitions.</li>
+</ol>
+<p>You also need to supply an appropriate JiBX binding definition
+(using the <i>-Ebindingfile {file}</i> parameter for WSDL2Java -
+see <a href="./jibx-codegen-integration.html#codegen">JiBX Codegen
+Integration - WSDL2Java usage</a> for more details). This must
+define abstract <i>mapping</i>s for the <i>complexType</i>s
+referenced by child elements of the inputs and outputs, with a
+<i>type-name</i> attribute matching the schema <i>complexType</i>
+name. If the child elements reference schema <i>simpleType</i>
+definitions the binding must also define a <i>format</i>s for each
+<i>simpleType</i>, with a <i>label</i> attribute matching the
+schema <i>simpleType</i> name. The binding definition must also
+specify the <i>force-classes='true'</i> attribute on the
+<i>binding</i> element.</p>
+<p>For example, here's a binding definition that matches the above
+WSDL:</p>
+<pre>
+<binding force-classes="true" xmlns:tns="http://ws.sosnoski.com/library/types">
+
+ <namespace uri="http://ws.sosnoski.com/library/types" default="elements"/>
+
+ <mapping abstract="true" class="com.sosnoski.ws.library.jibx.beans.Book"
+ type-name="tns:BookInformation">
+ <value name="type" style="attribute" field="m_type"/>
+ <value name="isbn" style="attribute" field="m_isbn"/>
+ <collection field="m_authors">
+ <value name="author"/>
+ </collection>
+ <value name="title" field="m_title"/>
+ </mapping>
+
+</binding>
+</pre>
+<p>And here's the actual
+<code>com.sosnoski.ws.library.jibx.beans.Book</code> class:</p>
+<pre>
+package com.sosnoski.ws.library.jibx.beans;
+
+public class Book
+{
+ private String m_type;
+ private String m_isbn;
+ private String m_title;
+ private String[] m_authors;
+
+ public Book() {}
+
+ public String getType() {
+ return m_type;
+ }
+
+ public String getIsbn() {
+ return m_isbn;
+ }
+
+ public String getTitle() {
+ return m_title;
+ }
+
+ public String[] getAuthors() {
+ return m_authors;
+ }
+}
+</pre>
+<p>The JiBX code generation for Axis2 currently requires that
+classes coresponding to unwrapped child elements (such as
+<code>com.sosnoski.ws.library.jibx.beans.Book</code>, in this case)
+provide public default (no-argument) constructors.</p>
+<p>JiBX handling allows the child elements of both inputs and
+outputs to be optional (with <i>nillable='true'</i>,
+<i>minOccurs='0'</i>, or both), providing the binding converts
+these child elements to object types rather than primitive types.
+It also allows repeated child elements (with
+<i>minOccurs='unbounded'</i>, or any value of <i>minOccurs</i>
+greater than one), representing the repeated elements as arrays of
+the corresponding object or primitive types.</p>
+</body>
+</html>
Copied: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jms-transport.xml (from r556217, webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jms-transport.html)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jms-transport.xml?view=diff&rev=556222&p1=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jms-transport.html&r1=556217&p2=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/jms-transport.xml&r2=556222
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jms-transport.html (original)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/jms-transport.xml Fri Jul 13 21:37:26 2007
@@ -1,212 +1,316 @@
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="">
- <title>JMS Transport</title>
- <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
- media="all">
-</head>
-
-<body lang="en">
-<a name="configTransport"></a>
-
-<h1>JMS Transport</h1>
-
-<p>This document is all about the JMS (Java Messaging Service) Transport
-support in Apache Axis2, and how it should be configured.</p>
-
-<h2>Contents</h2>
-<ul>
- <li><a href="#CommonsHTTPTransportSender">Overview</a></li>
- <li><a href="#timeout_config">Configuration</a></li>
- <li><a href="#writing_services">Writing Services to Use the JMS
- Transport</a></li>
-</ul>
-<a name="CommonsHTTPTransportSender"></a>
-
-<h2>Overview</h2>
-
-<p>A new Java Messaging Service (JMS) transport implementation has been added
-to Axis2 to overcome some drawbacks of the previous JMS implementation. One
-of the enhancements provided with this new implementation is the ability to
-<strong>assign custom JMS destination names or existing JMS destinations to
-Axis2 services being deployed</strong>.</p>
-<a name="timeout_config"></a>
-
-<h2>Configuration</h2>
-
-<p>To use the JMS transport, the axis2.xml configuration must be setup as
-follows, in order to configure the JMSListener and the JMS Sender</p>
-<pre><strong>axis2.xml</strong>
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>
-
- <transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/></pre>
-
-<p>The JMS transport receiver configuration allows you to define the default
-connection factory (named as "default" ~ JMSConstants.DEFAULT_CONFAC_NAME)
-for use by Axis2 services using the JMS transport. This connection factory
-will be used by any service that does not explicitly specify a connection
-factory name in its services.xml file. The configuration required to
-associate a (local) Axis2 connection factory to an actual implementation must
-be provided as shown above. To specify the JNDI URL, the initial context
-factory class and the JNDI name of the actual JMS connection factory is used.
-You can also specify the parameters "java.naming.security.principal" and
-"java.naming.security.credentials", if required, to access the actual
-connection factory. The example shown above uses an ActiveMQ JMS
-implementation.</p>
-<pre><strong>axis2.xml</strong>
- <parameter name="myTopicConnectionFactory"></pre>
-<pre> <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter></pre>
-<pre> <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter></pre>
-<pre> <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter></pre>
-<pre> </parameter></pre>
-
-<p>If it is required or applicable, you are free to define additional (local)
-connection factories to Axis2 as shown above, which your services can use.
-For a service to specify that such a connection factory should be used, its
-services.xml may specify the following configuration parameter:</p>
-<pre>services.xml
- <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter></pre>
-
-<p><strong>Note:</strong> Depending on your JMS implementation, you will need
-to make available all the required libraries for your Axis2 instance. This
-example assumes you are using an ActiveMQ instance. To run the given code
-samples, it is required to make the following JAR files available:
-activeio-core-3.0-beta1.jar, activemq-core-4.0-RC2.jar,
-geronimo-j2ee-management_1.0_spec-1.0.jar at a minimum. It also requires you
-to start ActiveMQ separately from Axis2, and then provide the appropriate
-configuration settings (e.g. URL) to Axis2.</p>
-
-<p>During initialization, the JMS Listener creates a dedicated JMS message
-processor for each connection factory defined, and utilizes a shared thread
-pool to process the received messages.</p>
-
-<p>A service on an Axis2 instance is deployed on all the started transports
-by default, unless a list of transports is specified in its services.xml
-file. Hence, if a service must only be deployed on JMS, you should specify it
-on the services.xml as follows:</p>
-<pre> <transports>
- <transport>jms</transport>
- </transports></pre>
-
-<p>If the services.xml does not provide an explicit JMS destination name, it
-is assumed that the service will listen for messages on a JMS
-<strong>Queue</strong> by the same name as the <strong>name of the
-service</strong>. If an explicit connection factory definition name has not
-been specified, it is assumed that the "default" connection factory
-definition configured within the transport receiver is used. To provide a
-custom JMS destination name and connection factory, the services.xml file
-provides the following optional parameters.</p>
-<pre> <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter>
- <parameter name="transport.jms.Destination" locked="true">dynamicTopics/something.TestTopic</parameter></pre>
-<a name="writing_services"></a>
-
-<h2>Writing Services to Use the JMS Transport</h2>
-
-<p>This section assumes that you are already familiar with <a
-href="xmlbased-server.html">writing service implementations</a> for Axis2,
-and provides information on how to write your own service implementations
-to be exposed over JMS.</p>
-
-<p><strong>Echo - Service implementation and services.xml</strong></p>
-
-<p>This sample demonstrates a very simple service which is to be exposed over
-JMS. It does not specify a custom connection factory name, and hence uses the
-default value as specified in the JMS transport listener configuration. It
-also does not specify a custom destination name, and hence would listen to
-messages over a JMS Queue named "Echo" (which is the name of the service).
-This service will be exposed over all defined Axis2 transports, and the
-resulting URL for the service over JMS will be:</p>
-
-<p>jms:/echo?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616</p>
-<pre><strong>Echo.java</strong></pre>
-<pre> public class Echo {</pre>
-<pre> public String echoString(String in) {</pre>
-<pre> return in;</pre>
-<pre> }</pre>
-<pre> public String echoString1(String in) {</pre>
-<pre> return "echoString1 " + in;</pre>
-<pre> }</pre>
-<pre> public String echoString2(String in) {</pre>
-<pre> return "echoString2 " + in;</pre>
-<pre> }</pre>
-<pre> }</pre>
-<pre></pre>
-<pre><strong>services.xml</strong></pre>
-<pre> <service name="echo"></pre>
-<pre> <description>Echo Service</description></pre>
-<pre> <messageReceivers></pre>
-<pre> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"</pre>
-<pre> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/></pre>
-<pre> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"</pre>
-<pre> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/></pre>
-<pre> </messageReceivers></pre>
-<pre> <parameter name="ServiceClass" locked="true">Echo</parameter></pre>
-<pre></service></pre>
-
-<p></p>
-
-<p><strong>Echo2 - Service implementation and services.xml</strong></p>
-
-<p>This example shows a simple service which specifies that it should only be
-exposed over the JMS transport, and that the custom connection factory named
-"myTopcConnectionFactory" should be used to listen for requests at the JMS
-destination named "dynamicTopics/something.TestTopic". The JMS URL to access
-this service is:</p>
-
-<p>jms:/dynamicTopics/something.TestTopic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&java.naming.security.principal=system&java.naming.security.credentials=manager</p>
-<pre><strong>Echo2.java</strong></pre>
-<pre> public class Echo2 {</pre>
-<pre> public String echoString(String in) {</pre>
-<pre> return in;</pre>
-<pre> }</pre>
-<pre> }</pre>
-<pre></pre>
-<pre><strong>services.xml</strong></pre>
-<pre> <service name="echo"></pre>
-<pre> <transports></pre>
-<pre> <transport>jms</transport></pre>
-<pre> </transports></pre>
-<pre> <description>Echo2 Service</description></pre>
-<pre> <messageReceivers></pre>
-<pre> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"</pre>
-<pre> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/></pre>
-<pre> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"</pre>
-<pre> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/></pre>
-<pre> </messageReceivers></pre>
-<pre> <parameter name="ServiceClass" locked="true">Echo2</parameter></pre>
-<pre> <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter></pre>
-<pre> <parameter name="transport.jms.Destination" locked="true">dynamicTopics/something.TestTopic</parameter></pre>
-<pre> </service></pre>
-<pre> </pre>
-
-<h2>Starting up the Axis2 JMS transport</h2>
-<p>The Axis2 standalone binary distribution ships with an Axis2 Server, which
-starts up all the transports that are configured as per the axis2.xml. Hence,
-configure the JMS transport in your axis2.xml, and use the axis2server.bat or
-the axis2server.sh to start the JMS transport.</p></body>
-</html>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content=
+"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
+<meta http-equiv="content-type" content="" />
+<title>JMS Transport</title>
+<link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+media="all" />
+</head>
+<body lang="en" xml:lang="en">
+<a name="configTransport" id="configTransport"></a>
+<h1>JMS Transport</h1>
+<p>This document is all about the JMS (Java Messaging Service)
+Transport support in Apache Axis2, and how it should be
+configured.</p>
+<h2>Contents</h2>
+<ul>
+<li><a href="#CommonsHTTPTransportSender">Overview</a></li>
+<li><a href="#timeout_config">Configuration</a></li>
+<li><a href="#writing_services">Writing Services to Use the JMS
+Transport</a></li>
+</ul>
+<a name="CommonsHTTPTransportSender" id=
+"CommonsHTTPTransportSender"></a>
+<h2>Overview</h2>
+<p>A new Java Messaging Service (JMS) transport implementation has
+been added to Axis2 to overcome some drawbacks of the previous JMS
+implementation. One of the enhancements provided with this new
+implementation is the ability to <strong>assign custom JMS
+destination names or existing JMS destinations to Axis2 services
+being deployed</strong>.</p>
+<a name="timeout_config" id="timeout_config"></a>
+<h2>Configuration</h2>
+<p>To use the JMS transport, the axis2.xml configuration must be
+setup as follows, in order to configure the JMSListener and the JMS
+Sender</p>
+<pre>
+<strong>axis2.xml</strong>
+ <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+ <parameter name="default">
+ <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+ <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+ </parameter>
+ </transportReceiver>
+
+ <transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/>
+</pre>
+<p>The JMS transport receiver configuration allows you to define
+the default connection factory (named as "default" ~
+JMSConstants.DEFAULT_CONFAC_NAME) for use by Axis2 services using
+the JMS transport. This connection factory will be used by any
+service that does not explicitly specify a connection factory name
+in its services.xml file. The configuration required to associate a
+(local) Axis2 connection factory to an actual implementation must
+be provided as shown above. To specify the JNDI URL, the initial
+context factory class and the JNDI name of the actual JMS
+connection factory is used. You can also specify the parameters
+"java.naming.security.principal" and
+"java.naming.security.credentials", if required, to access the
+actual connection factory. The example shown above uses an ActiveMQ
+JMS implementation.</p>
+<pre>
+<strong>axis2.xml</strong>
+ <parameter name="myTopicConnectionFactory">
+</pre>
+<pre>
+ <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+</pre>
+<pre>
+ <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+</pre>
+<pre>
+ <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+</pre>
+<pre>
+ </parameter>
+</pre>
+<p>If it is required or applicable, you are free to define
+additional (local) connection factories to Axis2 as shown above,
+which your services can use. For a service to specify that such a
+connection factory should be used, its services.xml may specify the
+following configuration parameter:</p>
+<pre>
+services.xml
+ <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter>
+</pre>
+<p><strong>Note:</strong> Depending on your JMS implementation, you
+will need to make available all the required libraries for your
+Axis2 instance. This example assumes you are using an ActiveMQ
+instance. To run the given code samples, it is required to make the
+following JAR files available: activeio-core-3.0-beta1.jar,
+activemq-core-4.0-RC2.jar,
+geronimo-j2ee-management_1.0_spec-1.0.jar at a minimum. It also
+requires you to start ActiveMQ separately from Axis2, and then
+provide the appropriate configuration settings (e.g. URL) to
+Axis2.</p>
+<p>During initialization, the JMS Listener creates a dedicated JMS
+message processor for each connection factory defined, and utilizes
+a shared thread pool to process the received messages.</p>
+<p>A service on an Axis2 instance is deployed on all the started
+transports by default, unless a list of transports is specified in
+its services.xml file. Hence, if a service must only be deployed on
+JMS, you should specify it on the services.xml as follows:</p>
+<pre>
+ <transports>
+ <transport>jms</transport>
+ </transports>
+</pre>
+<p>If the services.xml does not provide an explicit JMS destination
+name, it is assumed that the service will listen for messages on a
+JMS <strong>Queue</strong> by the same name as the <strong>name of
+the service</strong>. If an explicit connection factory definition
+name has not been specified, it is assumed that the "default"
+connection factory definition configured within the transport
+receiver is used. To provide a custom JMS destination name and
+connection factory, the services.xml file provides the following
+optional parameters.</p>
+<pre>
+ <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter>
+ <parameter name="transport.jms.Destination" locked="true">dynamicTopics/something.TestTopic</parameter>
+</pre>
+<a name="writing_services" id="writing_services"></a>
+<h2>Writing Services to Use the JMS Transport</h2>
+<p>This section assumes that you are already familiar with <a href=
+"xmlbased-server.html">writing service implementations</a> for
+Axis2, and provides information on how to write your own service
+implementations to be exposed over JMS.</p>
+<p><strong>Echo - Service implementation and
+services.xml</strong></p>
+<p>This sample demonstrates a very simple service which is to be
+exposed over JMS. It does not specify a custom connection factory
+name, and hence uses the default value as specified in the JMS
+transport listener configuration. It also does not specify a custom
+destination name, and hence would listen to messages over a JMS
+Queue named "Echo" (which is the name of the service). This service
+will be exposed over all defined Axis2 transports, and the
+resulting URL for the service over JMS will be:</p>
+<p>
+jms:/echo?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616</p>
+<pre>
+<strong>Echo.java</strong>
+</pre>
+<pre>
+ public class Echo {
+</pre>
+<pre>
+ public String echoString(String in) {
+</pre>
+<pre>
+ return in;
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+ public String echoString1(String in) {
+</pre>
+<pre>
+ return "echoString1 " + in;
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+ public String echoString2(String in) {
+</pre>
+<pre>
+ return "echoString2 " + in;
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+<strong>services.xml</strong>
+</pre>
+<pre>
+ <service name="echo">
+</pre>
+<pre>
+ <description>Echo Service</description>
+</pre>
+<pre>
+ <messageReceivers>
+</pre>
+<pre>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+</pre>
+<pre>
+ class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+</pre>
+<pre>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+</pre>
+<pre>
+ class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+</pre>
+<pre>
+ </messageReceivers>
+</pre>
+<pre>
+ <parameter name="ServiceClass" locked="true">Echo</parameter>
+</pre>
+<pre>
+</service>
+</pre>
+<p><strong>Echo2 - Service implementation and
+services.xml</strong></p>
+<p>This example shows a simple service which specifies that it
+should only be exposed over the JMS transport, and that the custom
+connection factory named "myTopcConnectionFactory" should be used
+to listen for requests at the JMS destination named
+"dynamicTopics/something.TestTopic". The JMS URL to access this
+service is:</p>
+<p>
+jms:/dynamicTopics/something.TestTopic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&java.naming.security.principal=system&java.naming.security.credentials=manager</p>
+<pre>
+<strong>Echo2.java</strong>
+</pre>
+<pre>
+ public class Echo2 {
+</pre>
+<pre>
+ public String echoString(String in) {
+</pre>
+<pre>
+ return in;
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+ }
+</pre>
+<pre>
+<strong>services.xml</strong>
+</pre>
+<pre>
+ <service name="echo">
+</pre>
+<pre>
+ <transports>
+</pre>
+<pre>
+ <transport>jms</transport>
+</pre>
+<pre>
+ </transports>
+</pre>
+<pre>
+ <description>Echo2 Service</description>
+</pre>
+<pre>
+ <messageReceivers>
+</pre>
+<pre>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+</pre>
+<pre>
+ class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+</pre>
+<pre>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+</pre>
+<pre>
+ class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+</pre>
+<pre>
+ </messageReceivers>
+</pre>
+<pre>
+ <parameter name="ServiceClass" locked="true">Echo2</parameter>
+</pre>
+<pre>
+ <parameter name="transport.jms.ConnectionFactory" locked="true">myTopicConnectionFactory</parameter>
+</pre>
+<pre>
+ <parameter name="transport.jms.Destination" locked="true">dynamicTopics/something.TestTopic</parameter>
+</pre>
+<pre>
+ </service>
+</pre>
+<pre>
+
+</pre>
+<h2>Starting up the Axis2 JMS transport</h2>
+<p>The Axis2 standalone binary distribution ships with an Axis2
+Server, which starts up all the transports that are configured as
+per the axis2.xml. Hence, configure the JMS transport in your
+axis2.xml, and use the axis2server.bat or the axis2server.sh to
+start the JMS transport.</p>
+</body>
+</html>
Copied: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/json_support.xml (from r556217, webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/json_support.html)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/json_support.xml?view=diff&rev=556222&p1=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/json_support.html&r1=556217&p2=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/json_support.xml&r2=556222
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/json_support.html (original)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/json_support.xml Fri Jul 13 21:37:26 2007
@@ -1,229 +1,218 @@
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <title></title>
- <meta name="AUTHOR" content="Isuru Suriarachchi">
- <meta name="CREATED" content="20070203;331600">
- <meta name="CHANGEDBY" content="Isuru Suriarachchi">
- <meta name="CHANGED" content="20070208;12031400">
- <style type="text/css">
- <!--
-@page { size: 8.5in 11in; margin: 0.79in }
-P { margin-bottom: 0.08in }
--->
-
- </style>
-</head>
-
-<body>
-<h1 class="title">JSON Support in Axis2</h1>
-
-<p>This document explains the JSON support implementation in Axis2. It
-includes an introduction to JSON, an outline as to why JSON support is useful
-to Axis2 and how it should be used. This document also provides details on test
-cases and samples.</p>
-
-<h3>What is JSON?</h3>
-
-<p><a href="http://www.json.org/">JSON</a> (Java Script Object Notation) is
-another data exchangeable format like XML, but more lightweight and
-easily readable. It is based on a subset of the JavaScript language. Therefore,
-JavaScript can understand JSON, and it can make JavaScript objects by using
-JSON strings. JSON is based on key-value pairs and it uses colons to separate
-keys and values. JSON doesn't use end tags, and it uses braces (curly
-brackets) to enclose JSON Objects.</p>
-
-<p><font size="3">e.g. <font size="2"><root><test>json
-object</test></root> == {ârootâ:{âtestâ:âjson
-objectâ}}</font></font></p>
-
-<p>When it comes to converting XML to JSON and vice versa, there are two
-major conventions, one named "<a
-href="http://badgerfish.ning.com/">Badgerfish</a>" and the other,
-âMappedâ. The main difference between these two conventions exists in the
-way they map XML namespaces into JSON.</p>
-
-<p><font size="3">e.g. <font size="2"><xsl:root
-xmlns:xsl="http://foo.com"><data>my json
-string</data></xsl:root></font></font></p>
-
-<p>This XML string can be converted into JSON as follows.</p>
-
-<p><b>Using âBadgerfishâ</b></p>
-
-<p><font
-size="2">{"xsl:root":{"@xmlns":{"xsl":"http://foo.com"},"data":{"$":"my json
-string"}}}</font></p>
-
-<p><b>Using âMappedâ</b></p>
-
-<p>If we use the namespace mapping as http://foo.com -> foo</p>
-
-<p><font size="2">{"foo.root":{"data":"my json string"}}</font></p>
-
-<p>JSON support is a new feature in <a
-href="http://ws.apache.org/axis2/">Apache Axis2/Java</a>. It will become a
-crucial improvement in the future with applications like JavaScript Web
-services.</p>
-
-<h2>Why JSON Support for Axis2?</h2>
-
-<p><a href="http://ws.apache.org/axis2/">Apache Axis2</a> is a Web services
-stack that delivers incoming messages into target applications. In most
-cases, these messages are SOAP messages. In addition, it is also possible to
-send REST messages through Axis2. Both types of messages use XML as their
-data exchangeable format. So if we can use XML as a format, why use JSON
-as another format?</p>
-
-<p>There are many advantages of implementing JSON support in Axis2. Mainly,
-it helps the JavaScript users (services and clients written in JavaScript) to
-deal with Axis2. When the service or the client is in JavaScript, it can use
-the JSON string and directly build JavaScript objects to retrieve
-information, without having to build the object model (OMElement in Axis2).
-Also, JavaScript services can return the response through Axis2, just as a
-JSON string can be shipped in a JSONDataSource.</p>
-
-<p>Other than for that, there are some extra advantages of using JSON in
-comparison to XML. Although the conversation âXML or JSON?â is still a
-hot topic, many people accept the fact that JSON can be passed and built
-more easily by machines than XML. </p>
-
-<p>For more details of this implementation architecture, refer to the article
-<a href="http://wso2.org/library/768">"JSON Support for Apache Axis2"</a></p>
-
-<h2>How to use JSON in Axis2</h2>
-
-<p>At the moment JSON doesn't have a standard and unique content type.
-âapplication/jsonâ (this is the content type which is approved in the <a
-href="http://www.ietf.org/rfc/rfc4627.txt?number=4627">JSON RFC</a> ),
-âtext/javascriptâ and âtext/jsonâ are some of the commonly used
-content types of JSON. Due to this problem, in Axis2, the user has been given
-the freedom of selecting the content type. </p>
-
-<h3>Step 1</h3>
-
-<p>Map the appropriate MessageFormatter and OMBuilder with the content type
-you are using in the axis2.xml file.</p>
-
-<p>e.g.1: If you are using the âMappedâ convention with the content type
-âapplication/jsonâ</p>
-<pre> <messageFormatters>
- <messageFormatter contentType="application/json"
- class="org.apache.axis2.json.JSONMessageFormatter"/>
- <!-- more message formatters -->
- </messageFormatters>
-
- <messageBuilders>
- <messageBuilder contentType="application/json"
- class="org.apache.axis2.json.JSONOMBuilder"/>
- <!-- more message builders -->
- </messageBuilders></pre>
-
-<p>e.g.2: If you are using the âBadgerfishâ convention with the content
-type âtext/javascriptâ</p>
-<pre> <messageFormatters>
- <messageFormatter contentType="text/javascript"
- class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>
- <!-- more message formatters -->
- </messageFormatters>
-
- <messageBuilders>
- <messageBuilder contentType="text/javascript"
- class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>
- <!-- more message builders -->
- </messageBuilders></pre>
-
-<h3>Step 2</h3>
-
-<p>On the client side, make the ConfigurationContext by reading the axis2.xml
-in which the correct mappings are given.</p>
-
-<p>e.g.</p>
-<pre> File configFile = new File("test-resources/axis2.xml");
- configurationContext = ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(null, configFile.getAbsolutePath());
- ..........
- ServiceClient sender = new ServiceClient(configurationContext, null);</pre>
-
-<h3>Step 3</h3>
-
-<p>Set the <i>MESSAGE_TYPE </i>option with exactly the same content type you
-used in the axis2.xml.</p>
-
-<p>e.g. If you use the content type âapplication/jsonâ,</p>
-<pre> Options options = new Options();
- options.setProperty(Constants.Configuration.MESSAGE_TYPE, âapplication/jsonâ);
- //more options
- //...................
-
- ServiceClient sender = new ServiceClient(configurationContext, null);
- sender.setOptions(options);
-</pre>
-
-<p>If you are sending a request to a remote service, you have to know the
-exact JSON content type that is used by that service, and you have to use
-that content type in your client as well.</p>
-
-<p>HTTP POST is used as the default method to send JSON messages through
-Axis2, if the HTTP method is not explicitly set by the user. But if you want to send
-JSON in HTTP GET method as a parameter, you can do that by just setting an
-option on the client side.</p>
-
-<p>e.g. <code>options.setProperty(Constants.Configuration.HTTP_METHOD,
-Constants.Configuration.HTTP_METHOD_GET);</code></p>
-
-<p>Here, the Axis2 receiving side (JSONOMBuilder) builds the OMElement by
-reading the JSON string which is sent as a parameter. The request can be made
-even through the browser.</p>
-
-<p>e.g. Sample JSON request through HTTP GET. The JSON message is encoded and
-sent.</p>
-
-<p><code>GET
-/axis2/services/EchoXMLService/echoOM?query=%7B%22echoOM%22:%7B%22data%22:%5B%22my%20json%20string%22,%22my%20second%20json%20string%22%5D%7D%7D
-HTTP/1.1</code></p>
-
-<h2>Tests and Samples</h2>
-
-<h3>Integration Test</h3>
-
-<p>The JSON integration test is available under âtestâ in the âjsonâ
-module of Axis2. It uses the SimpleHTTPServer to deploy the service. A simple
-echo service is used to return the incoming OMSourcedElementImpl object,
-which contains the JSONDataSource. There are two test cases for two different
-conventions and another one test case to send the request in GET. </p>
-
-<h3>Yahoo-JSON Sample</h3>
-
-<p>This sample is available in the âsamplesâ module of Axis2. It is a
-client which calls the Yahoo search API using the GET method, with the
-parameter âoutput=jsonâ. The Yahoo search service sends the response as a
-âMappedâ formatted JSON string with the content type
-âtext/javascriptâ. This content type is mapped with the JSONOMBuilder in
-the axis2.xml. All the results are shown in a GUI. To run the sample, execute
-the ant script.</p>
-
-<p>These two applications provide good examples of using JSON within Axis2.
-By reviewing these samples, you will be able to better understand Axis2's
-JSON support implementation.</p>
-</body>
-</html>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content=
+"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
+<meta http-equiv="content-type" content=
+"text/html; charset=us-ascii" />
+<title></title>
+<meta name="AUTHOR" content="Isuru Suriarachchi" />
+<meta name="CREATED" content="20070203;331600" />
+<meta name="CHANGEDBY" content="Isuru Suriarachchi" />
+<meta name="CHANGED" content="20070208;12031400" />
+<style type="text/css">
+/*<![CDATA[*/
+ <!--
+@page { size: 8.5in 11in; margin: 0.79in }
+P { margin-bottom: 0.08in }
+-->
+
+/*]]>*/
+</style>
+</head>
+<body>
+<h1 class="title">JSON Support in Axis2</h1>
+<p>This document explains the JSON support implementation in Axis2.
+It includes an introduction to JSON, an outline as to why JSON
+support is useful to Axis2 and how it should be used. This document
+also provides details on test cases and samples.</p>
+<h3>What is JSON?</h3>
+<p><a href="http://www.json.org/">JSON</a> (Java Script Object
+Notation) is another data exchangeable format like XML, but more
+lightweight and easily readable. It is based on a subset of the
+JavaScript language. Therefore, JavaScript can understand JSON, and
+it can make JavaScript objects by using JSON strings. JSON is based
+on key-value pairs and it uses colons to separate keys and values.
+JSON doesn't use end tags, and it uses braces (curly brackets) to
+enclose JSON Objects.</p>
+<p><font size="3">e.g. <font size="2"><root><test>json
+object</test></root> ==
+{{json object}}</font></font></p>
+<p>When it comes to converting XML to JSON and vice versa, there
+are two major conventions, one named "<a href=
+"http://badgerfish.ning.com/">Badgerfish</a>" and the other,
+Mapped. The main difference
+between these two conventions exists in the way they map XML
+namespaces into JSON.</p>
+<p><font size="3">e.g. <font size="2"><xsl:root
+xmlns:xsl="http://foo.com"><data>my json
+string</data></xsl:root></font></font></p>
+<p>This XML string can be converted into JSON as follows.</p>
+<p><b>Using Badgerfish</b></p>
+<p><font size=
+"2">{"xsl:root":{"@xmlns":{"xsl":"http://foo.com"},"data":{"$":"my
+json string"}}}</font></p>
+<p><b>Using Mapped</b></p>
+<p>If we use the namespace mapping as http://foo.com -> foo</p>
+<p><font size="2">{"foo.root":{"data":"my json string"}}</font></p>
+<p>JSON support is a new feature in <a href=
+"http://ws.apache.org/axis2/">Apache Axis2/Java</a>. It will become
+a crucial improvement in the future with applications like
+JavaScript Web services.</p>
+<h2>Why JSON Support for Axis2?</h2>
+<p><a href="http://ws.apache.org/axis2/">Apache Axis2</a> is a Web
+services stack that delivers incoming messages into target
+applications. In most cases, these messages are SOAP messages. In
+addition, it is also possible to send REST messages through Axis2.
+Both types of messages use XML as their data exchangeable format.
+So if we can use XML as a format, why use JSON as another
+format?</p>
+<p>There are many advantages of implementing JSON support in Axis2.
+Mainly, it helps the JavaScript users (services and clients written
+in JavaScript) to deal with Axis2. When the service or the client
+is in JavaScript, it can use the JSON string and directly build
+JavaScript objects to retrieve information, without having to build
+the object model (OMElement in Axis2). Also, JavaScript services
+can return the response through Axis2, just as a JSON string can be
+shipped in a JSONDataSource.</p>
+<p>Other than for that, there are some extra advantages of using
+JSON in comparison to XML. Although the conversation
+XML or JSON? is still a hot topic,
+many people accept the fact that JSON can be passed and built more
+easily by machines than XML.</p>
+<p>For more details of this implementation architecture, refer to
+the article <a href="http://wso2.org/library/768">"JSON Support for
+Apache Axis2"</a></p>
+<h2>How to use JSON in Axis2</h2>
+<p>At the moment JSON doesn't have a standard and unique content
+type. application/json (this is
+the content type which is approved in the <a href=
+"http://www.ietf.org/rfc/rfc4627.txt?number=4627">JSON RFC</a> ),
+text/javascript and
+text/json are some of the commonly
+used content types of JSON. Due to this problem, in Axis2, the user
+has been given the freedom of selecting the content type.</p>
+<h3>Step 1</h3>
+<p>Map the appropriate MessageFormatter and OMBuilder with the
+content type you are using in the axis2.xml file.</p>
+<p>e.g.1: If you are using the
+Mapped convention with the content
+type application/json</p>
+<pre>
+ <messageFormatters>
+ <messageFormatter contentType="application/json"
+ class="org.apache.axis2.json.JSONMessageFormatter"/>
+ <!-- more message formatters -->
+ </messageFormatters>
+
+ <messageBuilders>
+ <messageBuilder contentType="application/json"
+ class="org.apache.axis2.json.JSONOMBuilder"/>
+ <!-- more message builders -->
+ </messageBuilders>
+</pre>
+<p>e.g.2: If you are using the
+Badgerfish convention with the
+content type text/javascript</p>
+<pre>
+ <messageFormatters>
+ <messageFormatter contentType="text/javascript"
+ class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>
+ <!-- more message formatters -->
+ </messageFormatters>
+
+ <messageBuilders>
+ <messageBuilder contentType="text/javascript"
+ class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>
+ <!-- more message builders -->
+ </messageBuilders>
+</pre>
+<h3>Step 2</h3>
+<p>On the client side, make the ConfigurationContext by reading the
+axis2.xml in which the correct mappings are given.</p>
+<p>e.g.</p>
+<pre>
+ File configFile = new File("test-resources/axis2.xml");
+ configurationContext = ConfigurationContextFactory
+ .createConfigurationContextFromFileSystem(null, configFile.getAbsolutePath());
+ ..........
+ ServiceClient sender = new ServiceClient(configurationContext, null);
+</pre>
+<h3>Step 3</h3>
+<p>Set the <i>MESSAGE_TYPE</i> option with exactly the same content
+type you used in the axis2.xml.</p>
+<p>e.g. If you use the content type
+application/json,</p>
+<pre>
+ Options options = new Options();
+ options.setProperty(Constants.Configuration.MESSAGE_TYPE, application/json);
+ //more options
+ //...................
+
+ ServiceClient sender = new ServiceClient(configurationContext, null);
+ sender.setOptions(options);
+</pre>
+<p>If you are sending a request to a remote service, you have to
+know the exact JSON content type that is used by that service, and
+you have to use that content type in your client as well.</p>
+<p>HTTP POST is used as the default method to send JSON messages
+through Axis2, if the HTTP method is not explicitly set by the
+user. But if you want to send JSON in HTTP GET method as a
+parameter, you can do that by just setting an option on the client
+side.</p>
+<p>e.g.
+<code>options.setProperty(Constants.Configuration.HTTP_METHOD,
+Constants.Configuration.HTTP_METHOD_GET);</code></p>
+<p>Here, the Axis2 receiving side (JSONOMBuilder) builds the
+OMElement by reading the JSON string which is sent as a parameter.
+The request can be made even through the browser.</p>
+<p>e.g. Sample JSON request through HTTP GET. The JSON message is
+encoded and sent.</p>
+<p><code>GET
+/axis2/services/EchoXMLService/echoOM?query=%7B%22echoOM%22:%7B%22data%22:%5B%22my%20json%20string%22,%22my%20second%20json%20string%22%5D%7D%7D
+HTTP/1.1</code></p>
+<h2>Tests and Samples</h2>
+<h3>Integration Test</h3>
+<p>The JSON integration test is available under
+test in the
+json module of Axis2. It uses the
+SimpleHTTPServer to deploy the service. A simple echo service is
+used to return the incoming OMSourcedElementImpl object, which
+contains the JSONDataSource. There are two test cases for two
+different conventions and another one test case to send the request
+in GET.</p>
+<h3>Yahoo-JSON Sample</h3>
+<p>This sample is available in the
+samples module of Axis2. It is a
+client which calls the Yahoo search API using the GET method, with
+the parameter output=json. The
+Yahoo search service sends the response as a
+formatted JSON string with
+the content type text/javascript.
+This content type is mapped with the JSONOMBuilder in the
+axis2.xml. All the results are shown in a GUI. To run the sample,
+execute the ant script.</p>
+<p>These two applications provide good examples of using JSON
+within Axis2. By reviewing these samples, you will be able to
+better understand Axis2's JSON support implementation.</p>
+</body>
+</html>
Copied: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-configuration.xml (from r556217, webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-configuration.html)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-configuration.xml?view=diff&rev=556222&p1=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-configuration.html&r1=556217&p2=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-configuration.xml&r2=556222
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-configuration.html (original)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-configuration.xml Fri Jul 13 21:37:26 2007
@@ -20,10 +20,10 @@
<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
- <meta http-equiv="content-type" content="">
+ <meta http-equiv="content-type" content=""/>
<title>Mail transport</title>
<link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
- media="all">
+ media="all"/>
</head>
<body lang="en">
@@ -220,6 +220,6 @@
recipient pops it from the server. To facilitate the use in Linux
environments as a non root user, the POP and SMTP ports used by default
configuration/test cases are, 1024, 25 and 1024, 110 respectively.</p>
-<hr>
+<hr/>
</body>
</html>
Copied: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-transport.xml (from r556217, webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-transport.html)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-transport.xml?view=diff&rev=556222&p1=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-transport.html&r1=556217&p2=webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/mail-transport.xml&r2=556222
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-transport.html (original)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/mail-transport.xml Fri Jul 13 21:37:26 2007
@@ -19,10 +19,10 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
- <meta http-equiv="content-type" content="">
+ <meta http-equiv="content-type" content=""/>
<title>Invoking a service using mail</title>
<link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
- media="all">
+ media="all"/>
</head>
<body>
@@ -72,9 +72,9 @@
<blockquote>
1. Using the simple mail server included in Axis2 (not recommended in
- production).<br>
- 2. Using a generic mail server.<br>
- 3. Using mailets.<br>
+ production).<br/>
+ 2. Using a generic mail server.<br/>
+ 3. Using mailets.<br/>
</blockquote>
<p>Options 1 and 2 are fairly simple and easy to implement, whereas option 3
@@ -99,7 +99,7 @@
<p>Now that we have the environment set up, we can use the code below to get
the mail functionality started. First we'll have a look at it from the mail
-server side. <br>
+server side. <br/>
</p>
<source><pre> // Start the mail server using the default configurations.
ConfigurationContext configContext = UtilsMailServer.start();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org