You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/11/05 03:57:55 UTC
svn commit: r471347 - in
/webservices/axis2/branches/java/1_1/modules/samples/databinding: ./
client/src/samples/databinding/ service/src/samples/databinding/
Author: dims
Date: Sat Nov 4 18:57:53 2006
New Revision: 471347
URL: http://svn.apache.org/viewvc?view=rev&rev=471347
Log:
- Added a JDOM Based client that illustrates the OMDataSource
- Excluded from build because it needs 3 files for bridging stax/jdom from
https://svn.codehaus.org/woodstox/utils/jdom/
- Clean up imports
Added:
webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
Modified:
webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml
webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java
webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/build.xml Sat Nov 4 18:57:53 2006
@@ -136,9 +136,10 @@
<!--now compile the stub classes-->
<javac debug="on" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true"
+ srcdir="${client.target}/src"
+ excludes="**/StockClient2*.*"
destdir="${client.target}/classes"
classpathref="axis2.classpath">
- <src path="${client.target}/src"/>
</javac>
<!--jar the compiled stuff-->
Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient.java Sat Nov 4 18:57:53 2006
@@ -17,16 +17,18 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.SAXOMBuilder;
import org.exolab.castor.xml.Marshaller;
-import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.UnmarshalHandler;
+import org.exolab.castor.xml.Unmarshaller;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import samples.databinding.data.GetStockQuote;
import samples.databinding.data.GetStockQuoteResponse;
-import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
+
+import javanet.staxutils.StAXSource;
public final class StockClient {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
@@ -50,8 +52,8 @@
builder.getRootElement());
- javanet.staxutils.StAXSource staxSource =
- new javanet.staxutils.StAXSource(response.getXMLStreamReader());
+ StAXSource staxSource =
+ new StAXSource(response.getXMLStreamReader());
Unmarshaller unmarshaller = new Unmarshaller(GetStockQuoteResponse.class);
UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
GetStockQuoteResponse stockQuoteResponse;
Added: webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java?view=auto&rev=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java (added)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/client/src/samples/databinding/StockClient2.java Sat Nov 4 18:57:53 2006
@@ -0,0 +1,103 @@
+package samples.databinding;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMDataSource;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.impl.builder.SAXOMBuilder;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.StAXBuilder;
+import org.jdom.output.SAXOutputter;
+import org.jdom.output.StAXOutputter;
+import org.jdom.output.XMLOutputter;
+import org.jdom.xpath.XPath;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Writer;
+public final class StockClient2 {
+ public static void main(String[] args) throws Exception {
+ if (args.length != 2) {
+ System.err.println("Usage: StockClient <url> <symbol>");
+ return;
+ }
+ final String url = args[0];
+ final String symbol = args[1];
+
+ System.out.println();
+ System.out.println("Getting Stock Quote for " + symbol);
+
+ StockQuoteServiceStub stub =
+ new StockQuoteServiceStub(url);
+ stub._getServiceClient().getOptions().setAction("getStockQuote");
+
+ Element element1 = new Element(
+ "getStockQuote", "nsl", "http://w3.ibm.com/schemas/services/2002/11/15/stockquote");
+ Element element2 = new Element("symbol");
+ element2.addContent(symbol);
+ element1.addContent(element2);
+
+ OMFactory factory = OMAbstractFactory.getOMFactory();
+ org.apache.axiom.om.OMDataSource src = new JDOMDataSource(element1);
+ org.apache.axiom.om.OMNamespace appns = factory.createOMNamespace("http://w3.ibm.com/schemas/services/2002/11/15/stockquote", "ns1");
+ OMElement child = factory.createOMElement(src, "getStockQuote", appns);
+
+ OMElement response = stub.getStockQuote(child);
+
+ StAXBuilder builder = new StAXBuilder();
+ Document doc = builder.build(response.getXMLStreamReader());
+ XPath path = XPath.newInstance("//price");
+ Element price = (Element) path.selectSingleNode(doc.getRootElement());
+ System.out.println("Price = " + price.getText());
+ }
+
+ private static class JDOMDataSource implements OMDataSource {
+ private final Element data;
+
+ private JDOMDataSource(Element data) {
+ this.data = data;
+ }
+
+ public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
+ try {
+ XMLOutputter outputter = new XMLOutputter();
+ outputter.output(data, output);
+ } catch (IOException e) {
+ throw new XMLStreamException(e);
+ }
+ }
+
+ public void serialize(Writer writer, OMOutputFormat format) throws XMLStreamException {
+ try {
+ XMLOutputter outputter = new XMLOutputter();
+ outputter.output(data, writer);
+ } catch (IOException e) {
+ throw new XMLStreamException(e);
+ }
+ }
+
+ public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException {
+ StAXOutputter outputter = new StAXOutputter(xmlWriter);
+ try {
+ outputter.outputFragment(data);
+ } catch (JDOMException e) {
+ throw new XMLStreamException(e);
+ }
+ }
+
+ public XMLStreamReader getReader() throws XMLStreamException {
+ SAXOMBuilder builder = new SAXOMBuilder();
+ SAXOutputter outputter = new SAXOutputter();
+ outputter.setContentHandler(builder);
+ outputter.setEntityResolver(builder);
+ outputter.setDTDHandler(builder);
+ outputter.setEntityResolver(builder);
+ return builder.getRootElement().getXMLStreamReader();
+ }
+ }
+}
Modified: webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java?view=diff&rev=471347&r1=471346&r2=471347
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java (original)
+++ webservices/axis2/branches/java/1_1/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java Sat Nov 4 18:57:53 2006
@@ -5,23 +5,23 @@
* by the Apache Axis2 version: 1.1-SNAPSHOT Nov 03, 2006 (06:54:07 EST)
*/
package samples.databinding;
+import javanet.staxutils.StAXSource;
import org.apache.axiom.om.impl.builder.SAXOMBuilder;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.UnmarshalHandler;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
-import org.exolab.castor.xml.UnmarshalHandler;
-import org.xml.sax.SAXException;
import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import samples.databinding.data.Change;
import samples.databinding.data.GetStockQuote;
import samples.databinding.data.GetStockQuoteResponse;
import samples.databinding.data.LastTrade;
import samples.databinding.data.Quote;
-import samples.databinding.data.Change;
-import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import java.io.IOException;
import java.util.Calendar;
@@ -35,8 +35,8 @@
* @param param0
*/
public org.apache.axiom.om.OMElement getStockQuote(org.apache.axiom.om.OMElement param0) {
- javanet.staxutils.StAXSource staxSource =
- new javanet.staxutils.StAXSource(param0.getXMLStreamReader());
+ StAXSource staxSource =
+ new StAXSource(param0.getXMLStreamReader());
Unmarshaller unmarshaller = new Unmarshaller(GetStockQuote.class);
UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
GetStockQuote stockQuote;
@@ -55,7 +55,7 @@
quote.setVolume(5000);
LastTrade lastTrade = new LastTrade();
- lastTrade.setPrice(99.99);
+ lastTrade.setPrice(99);
lastTrade.setDate(Calendar.getInstance().getTimeInMillis());
quote.setLastTrade(lastTrade);
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org