wood burning stoves
The moose likes Web Services and the fly likes adding header to soap requests Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "adding header to soap requests" Watch "adding header to soap requests" New topic

adding header to soap requests

Alexandru Gifei
Ranch Hand

Joined: May 19, 2012
Posts: 42

I am developing a client side application in c# which is using non-.NET web services. I need to add a token to every request i make after i receive this token.
The header has to look like this:

<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<ws:AuthToken xmlns:ws="http://wso2.com">

How can i add this token programatically in the soap header to every request i make?

Life is not measured by the number of breaths we take, but by the moments that take our breath away.
Bosun Bello
Ranch Hand

Joined: Nov 06, 2000
Posts: 1510
You need to add a client-side webservice handler. You may want to read up on that.

So much trouble in the world -- Bob Marley
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
Normally you'd use a WS-Security library that comes with all major SOAP stacks, and as Bosun said, that's what client-side handlers do.
Alexandru Gifei
Ranch Hand

Joined: May 19, 2012
Posts: 42

I managed to resolve this issue by creating a new web service client based on soap protocol. Then i added the token to SoapClientMessage by overriding the GetWriterForMessage method.
Anand Bansal

Joined: Oct 15, 2012
Posts: 14
Hi All,

I am able to achieve this. But I want to add a custom header tag inside a SOAP Header. It should not have a SOAP URI and any namespaces.

<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-9419978" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:Username>admin</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password></wsse:UsernameToken></wsse:Security>

<ABCHeader><MySubTag>textvalues</MySubTag></ABCHeader> ---------> This needs to be added.


Can someone help me out on this? I tried to add this through the below code and is adding extra information not required by me.

SOAPElement newHeader = soapheader.addChildElement("ABCHeader");
SOAPElement mySubTag = newHeader.addChildElement("MySubTag");

<soapenv:ABCHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"><soapenv:MySubTag>textValues</soapenv:MySubTag></soapenv:ABCHeader>

Expected Output:
I agree. Here's the link: http://aspose.com/file-tools
subject: adding header to soap requests
It's not a secret anymore!