GlassFish ESB v2.x – Reading and Writing arbitrary SOAP Headers in BPEL 2.0 using NMProperties

As I develop bigger prices of work, which have writeups associated with them, I inevitably have to solve small problems that crop up. The problems I solve I typically get written about in the corresponding writeup but may be missed by these who might need these kinds of solutions but who don’t have an interest in the major piece. For example, when writing about the HL7 HA solution, “GlassFish ESB v2.2 Field Notes – Exercising Load Balanced, Highly Available, Horizontally Scalable HL7 v2 Processing Solutions”, at, I had to work what host the instance of the business process was using and how to make the process instance wait for a random amount of time. I did separate writeups on these as “GlassFish ESB v2.1 – Using JavaScript Codelets to Extend BPEL 2.0 Functionality”, at, and “GlassFish ESB v2.1 Field Notes – JavaScript Codelets to Make BPEL Process Wait for a Random Duration Up to a Maximum number of Milliseconds”, at

Here I call reader’s attention to the problem of reading values of SOAP Headers in a BPEL 2.0 process. I discussed one method in “Java CAPS 5 / 6, OpenESB, GlassFish ESB – Handling SOAP Headers in BPEL”, at In the major writeup, now called “CH05_WSSecurityExploration_r0.4.2.pdf”, at, I am discussing, in passing, in Section 5.14.2, “Interacting with WS-Addressing Headers in BPEL”, a method that uses Normalized Message Properties (NMProperties) in BPEL 2.0, to access SOAP headers. While this piece discusses how to access WS-Addressing SOAP headers it is equally applicable to other SOAP headers. Similarly, in section 5.14.3, “Using WS-Addressing for Explicit Routing”, I discuss how arbitrary SOAP headers can be added and populated using NMProperties in BPEL 2.0. So if you need to manipulate SOAP header in BPEL 2.0, have a look a these sections.

The writeup, CH05_WSSecurityExploration_r0.4.2.pdf, is available at

3 thoughts on “GlassFish ESB v2.x – Reading and Writing arbitrary SOAP Headers in BPEL 2.0 using NMProperties

  1. Pingback: Java CAPS 5 / 6, OpenESB, GlassFish ESB – Handling SOAP Headers in BPEL

  2. Sivaraman


    We are asked to implement SSL Mutual authentication in our application while interfacing with a third party link. But we are not allowed to make this external call directly from glassfish 2.1, but rather its proxied through apache httpd(as its in the DMZ zone and the GF 2.1 is in the secure intranet zone). Can we assume that this will be the case in many enterprise deployments?

    Assuming that the outbound connections are proxied through apache httpd, can you kindly clarify what changes are required in GF side and the conf. that should be used in the apache httpd? The FQDN of the GF and httpd are different.

    1. Czapski Michael

      Hello, Sivaraman.

      Alas, I have not worked with apache httpd for a number of years, and I don’t recall whether and how it can be configured as an SSL proxy, therefore I can’t advise on this.




Leave a Reply

Your email address will not be published. Required fields are marked *