The “Partnership” in Hermes

Let's talk about "Partnership", one of the term you should know well in using Hermes.

After finishing this episode, you will know on how to create a partnership and can deliver messages to my testing server.

A large Hawaii pizza with extra cheese, please!


So, what is partnership?

Take an analogy, when you go to order a pizza, the waiter will ask you a couple of questions. What is your favorite topping? What size do you want? Do you want extra cheese?

Right, partnership is your decision on how the messages should be transmitted.

Partnership is an "agreement", in between you and the people who gonna receive your message (let's call them a "partner"). This "agreement" defines on how the message will be sent, e.g. should the partner reply with a note upon receiving a message.

Ok, how could I place my order?


In the Hermes 2 packages, you can find execution script called "partnership.sh" (or partnership.bat), the script will invoke a java class that helps to create the partnership. The program gather the partnership values from the xml file, which can be found from the "data" directory.

The XML file contains all the major configuration that you can find from the message specification, and the default value are configured to create partnership for loopback test. You should be able to spot the meaning of each of them by the name of each element and configure the partnership as desired.

Thus, to create the partnership, all you need to do is,


  1. Modify the xml file, e.g. if you want to create a partnership to send ebms message, you should edit the file "ebms.xml"
  2. Execute the batch script "sh partnership.sh ebms -a data/ebms.xml"


One thing to note is, the script will assume the username and password for the database to be those defined in the installation guide. If not, you will need to change the value in the file "conf/partnership.module.core.xml"

Who else can take my order?


So, you might want to talk to someone else other than yourself. Don't worry, I have setup a testing server. But PLEASE be gentle, don't try to stress test my server. :D


  1. Open "data/ebms.xml"
  2. Modify the following line from


    <transportEndpoint>
      http://127.0.0.1:8080/corvus/httpd/ebms/inbound
    </transportEndpoint>



    to


    <transportEndpoint>
      http://images.vsmile.com:8080/corvus/httpd/ebms/inbound
    </transportEndpoint>

  3. Execute the shell script,



    sh loopback.sh ebms



  4. All should goes well like in the loopback test, mark down the message id for the next step.


How would I know if my order has been placed?


Visit this page and look for the message id you get in the previous step.

Found it? Congratulation, you have sent your first ebms message over the internet.

What you can do next is to play around with the rest of the setting, like enabling the receive of acknowledgement, setup your own pair of server and try to exchange messages (make sure the partnership setting aligns between the server).

Once you are familiar with this, you can go live to exchange electronic messages with your business partner. Have fun!