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]