File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
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="">
<ws:AuthToken xmlns:ws="">

How can i add this token programatically in the soap header to every request i make?
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="">
<wsse:Security xmlns:wsse=""><wsse:UsernameToken wsu:Id="UsernameToken-9419978" xmlns:wsu=""><wsse:Username>admin</wsse:Username><wsse:Password Type="">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="" soapenv:mustUnderstand="0"><soapenv:MySubTag>textValues</soapenv:MySubTag></soapenv:ABCHeader>

Expected Output:
I agree. Here's the link:
subject: adding header to soap requests
It's not a secret anymore!