aspose file tools*
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 EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "adding header to soap requests" Watch "adding header to soap requests" New topic
Author

adding header to soap requests

Alexandru Gifei
Ranch Hand

Joined: May 19, 2012
Posts: 40

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">
<soapenv:Header>
<ws:AuthToken xmlns:ws="http://wso2.com">
<token>96cb8826-e1c3-424f-9261-0ff342be67c4</token>
</ws:AuthToken>
</soapenv:Header>
<soapenv:Body>
....
</soapenv:Body></soapenv:Envelope>

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: 1506
You need to add a client-side webservice handler. You may want to read up on that.


Bosun (SCJP, SCWCD)
So much trouble in the world -- Bob Marley
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 39541
    
  27
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.


Ping & DNS - updated with new look and Ping home screen widget
Alexandru Gifei
Ranch Hand

Joined: May 19, 2012
Posts: 40

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
Greenhorn

Joined: Oct 15, 2012
Posts: 1
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.

</soapenv:Header>

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");
mySubTag.addTextNode("textvalues");

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


Expected Output:
<ABCHeader><MySubTag>textvalues</MySubTag></ABCHeader>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: adding header to soap requests
 
Similar Threads
AXIS2 : Inclusion of Headers into SOAP fault message and changing the namespaces
Customize AXISFault before reaching the Operation
Axis client for jboss ejb3 session bean web service
sending pdf or any attachment from a java webservice to java client using JAX-WS and SAAJ
SOAP header in SOAP request