Thank you!

That has solved the runtime exception.


Eran Chinthaka wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Do this.
> 
> instead of serviceClient.addHeader(header)
> 
> put serviceClient.addHeader(basicCredentials).
> 
> The addHeader method can not accept an instance of Header class (arghh
> !! I better check this inside the code)
> 
> If this doesn't solve your problem, I need to re-create the problem and
> see. So please create a JIRA issue and upload your code there.
> 
> Chinthaka
> 
> Daniel Herbison wrote:
>> Thank you so far for your help!
>> 
>> The code is getting to the call (invokeBlocking) but is failing with this
>> exception:
>> 
>> Exception in thread "main" org.apache.axiom.soap.SOAPProcessingException:
>> Expecting an implementation of SOAP Envelope as the parent. But received
>> some other implementation
>> 
>> Could the header be causing this?
>> 
>> When I print the header I see (this looks ok):
>> <soapenv:Header xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
>>  <BasicCredentials xmlns="beta">
>>   <serviceId>string1</serviceId>
>>   <serviceKey>string2</serviceKey>
>>  </BasicCredentials>
>> </soapenv:Header>
>> 
>> current code:
>> RPCServiceClient serviceClient = new RPCServiceClient();
>> Options options = serviceClient.getOptions();
>> options.setSoapVersionURI(org.apache.axis2.namespace.Constants.URI_SOAP12_ENV);
>> options.setTo(targetEPR);
>> 
>> // start header build
>> SOAPFactory factory = (SOAPFactory) OMAbstractFactory.getSOAP12Factory();
>> OMNamespace omNs = factory.createOMNamespace("beta", ""); 
>> SOAPHeader header = factory.createSOAPHeader();
>> OMElement basicCredentials = factory.createOMElement("BasicCredentials",
>> omNs); 
>> OMElement serviceId = factory.createOMElement("serviceId", omNs); 
>> OMText serviceIdText = factory.createOMText(serviceId, agentID);
>> serviceId.addChild(serviceIdText); 
>> OMElement serviceKey = factory.createOMElement("serviceKey", omNs); 
>> OMText serviceKeyText = factory.createOMText(serviceKey, agentToken);
>> serviceKey.addChild(serviceKeyText); 
>> basicCredentials.addChild(serviceId);
>> basicCredentials.addChild(serviceKey);
>> header.addChild(basicCredentials);
>> // end header build
>> 
>> serviceClient.addHeader(header);
>> QName opSetClaim = new QName("beta", "GetClaim" );
>> Object[] opSetParams = new Object[] { agentID, agentToken, requestor };
>> Class[] returnTypes = new Class[] { Object.class };
>> Exception occuring on next line
>> Object[] response = serviceClient.invokeBlocking(opSetClaim, opSetParams,
>> returnTypes);
>> 
>> 
>> Eran Chinthaka wrote:
>> Ok, the first advice is *never* use impl classes inside Axiom. Always
>> use the factories. The reason is we have multiple implementations of
>> them.
>> 
>> To correct your problem, the easiest way is to create an OMElement
>> rather than a SOAPHeaderBlock and call
>> serviceClient.addHeader(OMElement).
>> 
>> The second option is to use the created SOAP12Factory to create
>> SOAPHeaderBlock.
>> use soapFactory.createSOAPHeaderBlock(...)
>> 
>> HTH.
>> Chinthaka
>> 
>> Daniel Herbison wrote:
>>>>> I'm trying to add the SOAP header, described in comment in code below,
>>>>> to
>>>>> a
>>>>> RPC call to a service.  First of all I really do not know if the code
>>>>> to
>>>>> create the header is correct, i think it is in the ball park(?)  But I
>>>>> get a
>>>>> run time error of:
>>>>>
>>>>> Exception in thread "main" java.lang.ClassCastException:
>>>>> org.apache.axiom.om.impl.OMNamespaceImpl
>>>>>         at
>>>>> org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl.<init>(SOAPHeaderBlockImpl.java:54)
>>>>>         at
>>>>> org.apache.axiom.soap.impl.dom.soap12.SOAP12HeaderBlockImpl.<init>(SOAP12HeaderBlockImpl.java:45)
>>>>>         at rpcAxSys.main(Unknown Source)
>>>>>
>>>>> the line causing the run time error is marked below, why is this doing
>>>>> this? 
>>>>> Also, is the header creation correct?
>>>>>
>>>>> code------------------
>>>>> RPCServiceClient serviceClient = new RPCServiceClient();
>>>>> Options options = serviceClient.getOptions();
>>>>> EndpointReference targetEPR = new
>>>>> EndpointReference("https://xyz/Authorize/Service.asmx";);
>>>>> options.setTo(targetEPR);
>>>>>
>>>>> /* header build
>>>>>  <soap:Header>
>>>>>   <BasicCredentials xmlns="beta">
>>>>>    <serviceId>string1</serviceId>    
>>>>>    <serviceKey>string2</serviceKey>  
>>>>>   </BasicCredentials>
>>>>>  </soap:Header>
>>>>>  */
>>>>> OMFactory fac = OMAbstractFactory.getOMFactory();
>>>>> OMNamespace omNs = fac.createOMNamespace("beta", "xmlns"); 
>>>>>
>>>>> SOAPFactory soapFactory = new SOAP12Factory(); 
>>>>> SOAPHeaderBlock soapHeaderBlock = new
>>>>> SOAP12HeaderBlockImpl("Security",omNs,soapFactory); 
>>>>> soapHeaderBlock.setMustUnderstand(true); 
>>>>>
>>>>> OMElement basicCredentials = fac.createOMElement("BasicCredentials",
>>>>> omNs); 
>>>>>
>>>>> OMElement serviceId = fac.createOMElement("serviceId", omNs); 
>>>>> OMText serviceIdText = fac.createOMText(serviceId, agentID);
>>>>> serviceId.addChild(serviceIdText); 
>>>>>
>>>>> OMElement serviceKey = fac.createOMElement("serviceKey", omNs); 
>>>>> OMText serviceKeyText = fac.createOMText(serviceKey, agentToken);
>>>>> serviceKey.addChild(serviceKeyText); 
>>>>>
>>>>> basicCredentials.addChild(serviceId); 
>>>>> basicCredentials.addChild(serviceKey); 
>>>>>
>>>>> soapHeaderBlock.addChild(basicCredentials); 
>>>>>
>>>>> serviceClient.addHeader(soapHeaderBlock); 
>>>>> // end header build
>>>>>
>>>>> QName opSetClaim = new QName("beta", "GetClaim" );
>>>>>
>>>>> Object[] opSetParams = new Object[] { agentID, agentToken, requestor
>>>>> };
>>>>> Class[] returnTypes = new Class[] { Object.class };
>>>>>
>>>>> Object[] response = serviceClient.invokeBlocking(opSetClaim,
>>>>> opSetParams,
>>>>> returnTypes);
>>>>>
>>>
> - ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFGRU7bjON2uBzUhh8RAsnpAJ4gKItRxT9WzcBZnzmq0NmUhBqJEgCgj11k
> +8NtQclVduzU9J76Mi8I0Hk=
> =acAh
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Creating-Axis2-SOAP-Header-tf3718396.html#a10603729
Sent from the Axis - User mailing list archive at Nabble.com.


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

Reply via email to