What is CF ?
//What you've illustrated here is a direct way to invoke the Stub
//but you'll need to use Axiom client code to Access the Axiom formatted
messages
//so lets take a look at a normal java client code

package samples.quickstart;
public static class GetPriceResponse implements
org.apache.axis2.databinding.ADBBean
{
  public static final javax.xml.namespace.QName MY_QNAME = new
javax.xml.namespace.QName("http://quickstart.samples/xsd","getPriceResponse";
,"ns1");

//to access the 3rd item of QName
  private static java.lang.String generatePrefix(java.lang.String namespace)
  {
            if(namespace.equals("http://quickstart.samples/xsd";))
           {
                return "ns1";
            }
            return
org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
    }

    /*** field for _return */
    protected double local_return;

    /** Auto generated getter method * @return double */
    public  double get_return()
    {
            return local_return;
     }

   /*** Auto generated setter method
        * @param param _return
        */
    public void set_return(double param)
   {
       this.local_return=param;
   }

     /**
     * isReaderMTOMAware
     * @return true if the reader supports MTOM
     */
   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader
reader)
  {
        boolean isReaderMTOMAware = false;
        try
       {
          isReaderMTOMAware =
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConst
ants.IS_DATA_HANDLERS_AWARE));
        }
        catch(java.lang.IllegalArgumentException e)
        {
          isReaderMTOMAware = false;
        }
        return isReaderMTOMAware;
   }

   /**
        * @param parentQName
        * @param factory
        * @return org.apache.axiom.om.OMElement
  */
public org.apache.axiom.om.OMElement getOMElement (final
javax.xml.namespace.QName parentQName,final org.apache.axiom.om.OMFactory
factory)throws org.apache.axis2.databinding.ADBException
{
//obtains the DataSource
          org.apache.axiom.om.OMDataSource dataSource = new
org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME)
          {
            //serializes using the xmlWriter
                 public void
serialize(org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter
xmlWriter) throws javax.xml.stream.XMLStreamException
                {

GetPriceResponse.this.serialize(MY_QNAME,factory,xmlWriter);
                 }
               };
               return new
org.apache.axiom.om.impl.llom.OMSourcedElementImpl(MY_QNAME,factory,dataSour
ce);
       }

//serializes QName to xmlWriter
         public void serialize(final javax.xml.namespace.QName parentQName,
                               final org.apache.axiom.om.OMFactory factory,

org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter
xmlWriter)
            throws javax.xml.stream.XMLStreamException,
org.apache.axis2.databinding.ADBException
        {
                java.lang.String prefix = null;
                java.lang.String namespace = null;
                prefix = parentQName.getPrefix();
                namespace = parentQName.getNamespaceURI();

                if (namespace != null)
               {
                        java.lang.String writerPrefix =
xmlWriter.getPrefix(namespace);
                        if (writerPrefix != null)
                       {
                            xmlWriter.writeStartElement(namespace,
parentQName.getLocalPart());
                        }
                        else
                        {
                            if (prefix == null)
                            {
                                prefix = generatePrefix(namespace);
                            }

                            xmlWriter.writeStartElement(prefix,
parentQName.getLocalPart(), namespace);
                            xmlWriter.writeNamespace(prefix, namespace);
                            xmlWriter.setPrefix(prefix, namespace);
                        }
                    }
                    else
                   {

xmlWriter.writeStartElement(parentQName.getLocalPart());
                    }

                   namespace = "http://quickstart.samples/xsd";;
                   if (! namespace.equals(""))
                   {
                                        prefix =
xmlWriter.getPrefix(namespace);
                                        if (prefix == null)
                                        {
                                            prefix =
generatePrefix(namespace);

xmlWriter.writeStartElement(prefix,"return", namespace);
                                            xmlWriter.writeNamespace(prefix,
namespace);
                                            xmlWriter.setPrefix(prefix,
namespace);
                                        }
                                        else
                                        {

xmlWriter.writeStartElement(namespace,"return");
                                        }

                                    }
                                    else
                                    {

xmlWriter.writeStartElement("return");
                                    }
                                //SOMEbody threw a A-Z into local_return
                                    if
(java.lang.Double.isNaN(local_return))
                                    {

writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",x
mlWriter);
                                     }
                                    else
                                    {

xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.c
onvertToString(local_return));
                                     }
                                   xmlWriter.writeEndElement();
        }

         /**
          * Util method to write an attribute with the ns prefix
          */
          private void writeAttribute(java.lang.String
prefix,java.lang.String namespace,java.lang.String attName,java.lang.String
attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws
javax.xml.stream.XMLStreamException
          {
              if (xmlWriter.getPrefix(namespace) == null)
             {
                       xmlWriter.writeNamespace(prefix, namespace);
                       xmlWriter.setPrefix(prefix, namespace);
              }
              xmlWriter.writeAttribute(namespace,attName,attValue);
         }

        /**
          * Util method to write an attribute without the ns prefix
          */
          private void writeAttribute(java.lang.String
namespace,java.lang.String attName,
                                      java.lang.String
attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws
javax.xml.stream.XMLStreamException
          {
              if (namespace.equals(""))
              {
                  xmlWriter.writeAttribute(attName,attValue);
              }
              else
              {
                  registerPrefix(xmlWriter, namespace);
                  xmlWriter.writeAttribute(namespace,attName,attValue);
              }
          }


           /**
             * Util method to write an attribute without the ns prefix
             */
            private void writeQNameAttribute(java.lang.String namespace,
java.lang.String attName,
                      javax.xml.namespace.QName qname,
javax.xml.stream.XMLStreamWriter xmlWriter) throws
javax.xml.stream.XMLStreamException
           {
                java.lang.String attributeNamespace =
qname.getNamespaceURI();
                java.lang.String attributePrefix =
xmlWriter.getPrefix(attributeNamespace);
                if (attributePrefix == null)
               {
                    attributePrefix = registerPrefix(xmlWriter,
attributeNamespace);
                }
                java.lang.String attributeValue;
                if (attributePrefix.trim().length() > 0)
               {
                    attributeValue = attributePrefix + ":" +
qname.getLocalPart();
                }
                else
                {
                    attributeValue = qname.getLocalPart();
                }

                if (namespace.equals(""))
                {
                    xmlWriter.writeAttribute(attName, attributeValue);
                }
                else
                {
                    registerPrefix(xmlWriter, namespace);
                    xmlWriter.writeAttribute(namespace, attName,
attributeValue);
                }
            }
        /**
         *  method to handle Qnames
         */
        private void writeQName(javax.xml.namespace.QName qname,
                                javax.xml.stream.XMLStreamWriter xmlWriter)
throws javax.xml.stream.XMLStreamException
        {
            java.lang.String namespaceURI = qname.getNamespaceURI();
            if (namespaceURI != null)
           {
                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
                if (prefix == null)
               {
                    prefix = generatePrefix(namespaceURI);
                    xmlWriter.writeNamespace(prefix, namespaceURI);
                    xmlWriter.setPrefix(prefix,namespaceURI);
                }

                if (prefix.trim().length() > 0)
               {
                    xmlWriter.writeCharacters(prefix + ":" +
org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
                }
               else
               {
                    // i.e this is the default namespace

xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.c
onvertToString(qname));
                }

            }
            else
            {

xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.c
onvertToString(qname));
            }
        }

        private void writeQNames(javax.xml.namespace.QName[] qnames,
                                 javax.xml.stream.XMLStreamWriter xmlWriter)
throws javax.xml.stream.XMLStreamException
       {
            if (qnames != null)
            {
                // we have to store this data until last moment since it is
not possible to write any
                // namespace data after writing the charactor data
                java.lang.StringBuffer stringToWrite = new
java.lang.StringBuffer();
                java.lang.String namespaceURI = null;
                java.lang.String prefix = null;

                for (int i = 0; i < qnames.length; i++)
               {
                    if (i > 0)
                   {
                        stringToWrite.append(" ");
                    }
                    namespaceURI = qnames[i].getNamespaceURI();
                    if (namespaceURI != null)
                    {
                        prefix = xmlWriter.getPrefix(namespaceURI);
                        if ((prefix == null) || (prefix.length() == 0))
                        {
                            prefix = generatePrefix(namespaceURI);
                            xmlWriter.writeNamespace(prefix, namespaceURI);
                            xmlWriter.setPrefix(prefix,namespaceURI);
                        }

                        if (prefix.trim().length() > 0)
                        {

stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding
utils.ConverterUtil.convertToString(qnames[i]));
                        }
                        else
                        {

stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.conver
tToString(qnames[i]));
                        }
                    }
                    else
                    {

stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.conver
tToString(qnames[i]));
                    }
                }
                xmlWriter.writeCharacters(stringToWrite.toString());
            }
        }

         /**
         * Register a namespace prefix
         */
         private java.lang.String
registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String
namespace) throws javax.xml.stream.XMLStreamException
        {
                java.lang.String prefix = xmlWriter.getPrefix(namespace);

                if (prefix == null)
               {
                    prefix = generatePrefix(namespace);
                    while
(xmlWriter.getNamespaceContext().getNamespaceURI(prefix) != null)
                   {
                        prefix =
org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
                    }
                    xmlWriter.writeNamespace(prefix, namespace);
                    xmlWriter.setPrefix(prefix, namespace);
                }
                return prefix;
            }

        /**
        * databinding method to get an XML representation of this object
        */
        public javax.xml.stream.XMLStreamReader
getPullParser(javax.xml.namespace.QName qName)
                    throws org.apache.axis2.databinding.ADBException
        {
                 java.util.ArrayList elementList = new
java.util.ArrayList();
                 java.util.ArrayList attribList = new java.util.ArrayList();
                 elementList.add(new
javax.xml.namespace.QName("http://quickstart.samples/xsd","return";));


elementList.add(org.apache.axis2.databinding.utils.ConverterUtil.convertToSt
ring(local_return));

                return new
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl(qName,
elementList.toArray(), attribList.toArray());
        }
}; //getPriceResponse

public class StockQuoteServiceStub extends org.apache.axis2.client.Stub
{
    protected org.apache.axis2.description.AxisOperation[] _operations;
 /**
    * Auto generated method signature
    * @see samples.quickstart.StockQuoteService#getPrice
    * @param getPrice0
   */
public samples.quickstart.StockQuoteServiceStub.GetPriceResponse
getPrice(samples.quickstart.StockQuoteServiceStub.GetPrice getPrice0) throws
java.rmi.RemoteException
{
  try
 {
//Create the Client
   org.apache.axis2.client.OperationClient _operationClient =
_serviceClient.createClient(_operations[0].getName());
//set  the Action method
   _operationClient.getOptions().setAction("urn:getPrice");
//make sure Excetpion is thrown..
   _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
addPropertyToOperationClien(operationClient,org.apache.axis2.description.WSD
L2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");

// create a message context
org.apache.axis2.context.MessageContext _messageContext = new
org.apache.axis2.context.MessageContext();

// create SOAP envelope with that payload
org.apache.axiom.soap.SOAPEnvelope env =
toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
                                                    getPrice0,
                                                    optimizeContent(new
javax.xml.namespace.QName("http://quickstart.samples/";,
                                                    "getPrice")));

//adding SOAP soap_headers
  _serviceClient.addHeadersToEnvelope(env);

// set the message context with that soap envelope
  _messageContext.setEnvelope(env);

// add the message contxt to the operation client
_operationClient.addMessageContext(_messageContext);

//execute the operation client
 _operationClient.execute(true);

//get the returned Message
 org.apache.axis2.context.MessageContext _returnMessageContext
=_operationClient.getMessageContext(org.apache.axis2.wsdl.WSDLConstants.MESS
AGE_LABEL_IN_VALUE);

//get the Envelope
org.apache.axiom.soap.SOAPEnvelope _returnEnv =
_returnMessageContext.getEnvelope();

//get the FirstElement
 java.lang.Object object = fromOM(_returnEnv.getBody().getFirstElement() ,

samples.quickstart.StockQuoteServiceStub.GetPriceResponse.class,

getEnvelopeNamespaces(_returnEnv));

 _messageContext.getTransportOut().getSender().cleanup(_messageContext);

//return the OM object
  return (samples.quickstart.StockQuoteServiceStub.GetPriceResponse)object;
}
catch(org.apache.axis2.AxisFault f)
{
            org.apache.axiom.om.OMElement faultElt = f.getDetail();
            if (faultElt!=null)
            {
                if (faultExceptionNameMap.containsKey(faultElt.getQName()))
               {
                    //make the fault by reflection
                    try{
                        java.lang.String exceptionClassName =
(java.lang.String)faultExceptionClassNameMap.get(faultElt.getQName());
                        java.lang.Class exceptionClass =
java.lang.Class.forName(exceptionClassName);
                        java.lang.Exception ex=(java.lang.Exception)
exceptionClass.newInstance();
                        //message class
                        java.lang.String messageClassName =
(java.lang.String)faultMessageMap.get(faultElt.getQName());
                        java.lang.Class messageClass =
java.lang.Class.forName(messageClassName);
                        java.lang.Object messageObject =
fromOM(faultElt,messageClass,null);
                        java.lang.reflect.Method m =
exceptionClass.getMethod("setFaultMessage",
                                   new java.lang.Class[]{messageClass});
                        m.invoke(ex,new java.lang.Object[]{messageObject});
                        throw new java.rmi.RemoteException(ex.getMessage(),
ex);
                    }
                    catch(java.lang.ClassCastException e)
                    {
                       // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }
                    catch (java.lang.ClassNotFoundException e)
                    {
                        // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }
                    catch (java.lang.NoSuchMethodException e)
                   {
                        // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }
                    catch (java.lang.reflect.InvocationTargetException e)
                    {
                        // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }
                   catch (java.lang.IllegalAccessException e)
                   {
                        // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }   catch (java.lang.InstantiationException e) {
                        // we cannot intantiate the class - throw the
original Axis fault
                        throw f;
                    }
                }else{
                    throw f;
                }
            }else{
                throw f;
            }
        }
----- Original Message -----
From: "Paul Peterson" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, March 03, 2008 4:22 PM
Subject: Re: What is the correct way to instantiate a Axis2 client stub
class?


>
> I added the following main method to test the wrapper class as a java
> application and it worked as expected.  Still can't get it to work from
CF.
> Any ideas?
>
> public static void main(java.lang.String args[])
> {
>       try{
>         java.lang.String symbol = args[0];
>         java.lang.String strQuote = null;
>         StockQuoteStub wsStockQuote = new StockQuoteStub();
>     GetQuote objGetQuote = new GetQuote();
>     objGetQuote.setSymbol(symbol);
>     strQuote = wsStockQuote.GetQuote(objGetQuote).getGetQuoteResult();
>     System.out.println("\n" + strQuote + "\n");
>
>         } catch(Exception e){
>             e.printStackTrace();
>             System.out.println("\n\n\n");
>         }
> }
> --
> View this message in context:
http://www.nabble.com/What-is-the-correct-way-to-instantiate-a-Axis2-client-
stub-class--tp15809428p15814281.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to