<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>lekkimworld.comwebservices</title>
    <link>http://lekkimworld.com/tags/webservices/</link>
    <description>IBM Lotus Notes/Domino, Websphere, IBM Connections, mobile, web, JavaScript, Java...</description>
    <language>en</language>
    <copyright>Mikkel Flindt Heisterberg (mh [at] intravision [dot] dk</copyright>
    <pubDate>Sat, 19 May 2012 06:50:25 GMT</pubDate>
    <dc:creator>Mikkel Flindt Heisterberg (mh [at] intravision [dot] dk</dc:creator>
    <dc:date>2012-05-19T06:50:25Z</dc:date>
    <dc:language>en</dc:language>
    <dc:rights>Mikkel Flindt Heisterberg (mh [at] intravision [dot] dk</dc:rights>
    <image>
      <title>lekkimworld.comwebservices</title>
      <url>http://lekkimworld.com/tags/webservices/</url>
    </image>
    <item>
      <title>SOAP Headers in Lotus Domino web service consumers and providers</title>
      <link>http://lekkimworld.com/2012/02/08/soap_headers_in_lotus_domino_web_service_consumers_and_providers.html</link>
      <content:encoded>&lt;p&gt;
In a current project we're using the web service consumer and web server provider capability of Lotus Domino quite heavily. During the development the need to process the SOAP request headers which are provided in a section above the SOAP body. Problem is that these are not exposed through the proxy classes generated for you when you import the WSDL. Searching Google I came across the blog of Elena Neroslavskaya and more importantly the post that &lt;a href="http://enerosweb.wordpress.com/2010/07/28/lotusdomino-8-5-webservice-provider-manipulating-soap-header/"&gt;helped me out&lt;/a&gt;. Using the MessageContext class described in that blog post helped me crack the nut and now I can both iterate through the SOAP headers sent to me in the request and send SOAP headers back in the response. Sweet!
&lt;/p&gt;
&lt;p&gt;
Below are two code snippets - one for iterating through request headers and one for sending headers back. Home it may help someone out there.
&lt;/p&gt;
&lt;h3&gt;Iterate received headers&lt;/h3&gt;
&lt;pre class="prettyprint"&gt;
private void recurseHeaders(Iterator ite) { 
  while (ite.hasNext()) { 
    MessageElement elem = (MessageElement)ite.next(); 
    String nsUri = elem.getNamespaceURI(); 
    String name = elem.getName(); 
    String value = elem.getValue();
    System.out.println("SOAP Header - ns &lt;" + 
      nsUri + "&gt;, name &lt;" + name + "&gt;, value &lt;" + 
      value + "&gt;"); 
    this.recurseHeaders(elem.getChildElements()); 
  } 
} 

public com.example.FooResponseType foo(
  com.example.FooRequestType req) throws Exception { 
  
  MessageContext mc = MessageContext.getCurrentContext(); 
  SOAPEnvelope envelope = mc.getRequestMessage()
    .getSOAPEnvelope(); 
  this.recurseHeaders(
    envelope.getHeader().getChildElements()); 
}
&lt;/pre&gt;
&lt;h3&gt;Send back headers&lt;/h3&gt;
&lt;pre class="prettyprint"&gt;
import lotus.domino.axis.message.SOAPHeaderElement;
import lotus.domino.axis.message.MessageElement;

MessageElement elemGuid = 
  new MessageElement("http://lekkimworld.com", "Guid"); 
elemGuid.addTextNode("GuidXYZ"); 

MessageElement elemUser = 
  new MessageElement("http://lekkimworld.com", "User"); 
elemUser.addTextNode("UserXYZ"); 

SOAPHeaderElement elemHeader = 
  new SOAPHeaderElement("http://lekkimworld.com", "TopElem"); 
elemHeader.addChild(elemGuid); 
elemHeader.addChild(elemUser); 

mc.getResponseMessage()
  .getSOAPEnvelope().addHeader(elemHeader); 
&lt;/pre&gt;
&lt;link href="http://lekkimworld.com/files/prettyprint/prettify.css" type="text/css" rel="stylesheet" /&gt;
&lt;script type="text/javascript" src="http://lekkimworld.com/files/prettyprint/prettify.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
prettyPrint();
&lt;/script&gt;</content:encoded>
      <category domain="http://lekkimworld.com/tags/java/">java</category>
      <category domain="http://lekkimworld.com/tags/webservices/">webservices</category>
      <category domain="http://lekkimworld.com/tags/wsdl/">wsdl</category>
      <pubDate>Wed, 08 Feb 2012 14:41:06 GMT</pubDate>
      <guid isPermaLink="false">tag:lekkimworld.com,2012-02-08:default/1328712066968</guid>
      <dc:date>2012-02-08T14:41:06Z</dc:date>
    </item>
    <item>
      <title>Practical Web Services in IBM Lotus Domino 7: What are Web services and why are they important?</title>
      <link>http://lekkimworld.com/2006/11/07/practical_web_services_in_ibm_lotus_domino_7_what_are_web_services_and_why_are_they_important.html</link>
      <content:encoded>&lt;p&gt;
New web services article by &lt;a href="http://www.nsftools.com"&gt;Julian&lt;/a&gt; on developerWorks: &lt;a href="http://www-128.ibm.com/developerworks/lotus/library/web-services1/"&gt;Practical Web Services in IBM Lotus Domino 7: What are Web services and why are they important?&lt;/a&gt; via &lt;a href="http://www.bruceelgort.com/blogs/be.nsf/plinks/BELT-6VBMU4"&gt;Mr. Elgort&lt;/a&gt;...
&lt;/p&gt;</content:encoded>
      <category domain="http://lekkimworld.com/categories/java/">Java</category>
      <category domain="http://lekkimworld.com/categories/web/">Web</category>
      <category domain="http://lekkimworld.com/tags/java/">java</category>
      <category domain="http://lekkimworld.com/tags/must_read_article/">must_read_article</category>
      <category domain="http://lekkimworld.com/tags/webservices/">webservices</category>
      <pubDate>Tue, 07 Nov 2006 21:34:19 GMT</pubDate>
      <guid isPermaLink="false">tag:lekkimworld.com,2006-11-07:default/1162935259342</guid>
      <dc:date>2006-11-07T21:34:19Z</dc:date>
    </item>
  </channel>
</rss>


