Thanks Martin.
Actually, I'm using Eclipse with Axis2 Codegen plugins. When I created
client using it, this is what it created as the stub:
(I'm pasting only the operation "testLogin" implementation from the stub).
Please let me know if you want me to post my WSDL.
/**
* Auto generated method signature
*
* @see us.two.safe.login.LoginService#testLogin
* @param testLoginType0
*/
public
us.two.safe.login.LoginServiceStub.TestLoginTypeResponse testLogin(
us.two.safe.login.LoginServiceStub.TestLoginType
testLoginType0) throws java.rmi.RemoteException
{
org.apache.axis2.context.MessageContext _messageContext =
null;
try{
org.apache.axis2.client.OperationClient _operationClient =
_serviceClient.createClient(_operations[0].getName());
_operationClient.getOptions().setAction("\"\"");
_operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
// create a message context
_messageContext = new
org.apache.axis2.context.MessageContext();
// create SOAP envelope with that payload
org.apache.axiom.soap.SOAPEnvelope env = null;
env =
toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
testLoginType0,
optimizeContent(new
javax.xml.namespace.QName("urn:login.safe.two.us",
"testLogin")));
//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);
org.apache.axis2.context.MessageContext _returnMessageContext =
_operationClient.getMessageContext(
org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
org.apache.axiom.soap.SOAPEnvelope _returnEnv =
_returnMessageContext.getEnvelope();
java.lang.Object object =
fromOM(_returnEnv.getBody().getFirstElement() ,
two.safe.login.LoginServiceStub.TestLoginTypeResponse.class,
getEnvelopeNamespaces(_returnEnv));
return
(us.two.safe.login.LoginServiceStub.TestLoginTypeResponse)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;
}
} finally {
_messageContext.getTransportOut().getSender().cleanup(_messageContext);
}
}
Thanks.
mgainty wrote:
>
>
> the answer is neither
>
> you'll need to construct a messageContext
> fill it with the supplied OMElement parameter
> create a client using the supplied operation parameter
> add the messageContext to your just created client
> then execute..
> e.g.
>
> /**
> * Directly invoke a named operation with a Robust In-Only MEP. This
> method
> * just sends your supplied XML and possibly receives a fault. For
> more
> * control, you can instead create a client for the operation and use
> that
> * client to execute the send.
> *
> * @param operation name of operation to be invoked
> (non-<code>null</code>)
> * @param elem XML to send
> * @throws AxisFault if something goes wrong while sending it or if a
> fault is
> * received in response (per the Robust In-Only
> MEP).
> * @see #createClient(QName)
> */
> public void sendRobust(QName operation, OMElement elem) throws
> AxisFault {
> MessageContext mc = new MessageContext();
> fillSOAPEnvelope(mc, elem);
> OperationClient mepClient = createClient(operation);
> mepClient.addMessageContext(mc);
> mepClient.execute(true);
> }
>
> If you are unable to execute the client call we will need to see your wsdl
> to assist you further
>
> Martin
> ______________________________________________
> Disclaimer and confidentiality note
> Everything in this e-mail and any attachments relates to the official
> business of Sender. This transmission is of a confidential nature and
> Sender does not endorse distribution to any party other than intended
> recipient. Sender does not necessarily endorse content contained within
> this transmission.
>
>
>> Date: Fri, 19 Sep 2008 09:53:55 -0700
>> From: [EMAIL PROTECTED]
>> To: [email protected]
>> Subject: Problem with Axis2 client and XFire service
>>
>>
>> Hi,
>>
>> I created an Axis2 client for an XFire service. But something seems to be
>> wrong.
>> When I run the client this is what I get.
>>
>> org.apache.axis2.AxisFault: Parameter
>> {urn:login.safe.two.us}TestLoginType
>> does not exist!
>> at
>> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
>> at
>> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
>> at
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
>> at
>> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
>> at
>> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>>
>> I debugged the client and found that the error occurs when this statement
>> is
>> executed in the stub:
>>
>> //execute the operation client
>> _operationClient.execute(true);
>>
>> Can anyone let me know is it the client that is weird or the service?
>>
>>
>> Thanks.
>> --
>> View this message in context:
>> http://www.nabble.com/Problem-with-Axis2-client-and-XFire-service-tp19575959p19575959.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]
>>
>
> _________________________________________________________________
> Get more out of the Web. Learn 10 hidden secrets of Windows Live.
> http://windowslive.com/connect/post/jamiethomson.spaces.live.com-Blog-cns!550F681DAD532637!5295.entry?ocid=TXT_TAGLM_WL_domore_092008
>
--
View this message in context:
http://www.nabble.com/Problem-with-Axis2-client-and-XFire-service-tp19575959p19607953.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]