This project concerns a library that implements the ebMS2 communication standard.
It can easily be used through Spring DI (within a Java project) or through its SOAP interface. Another project in this group forms an example of its use within a Tomcat web application.
A database is needed for storing CPAs (Collaboration Protocol Agreement) and messages (because the adapter implements reliable messaging). Support for several databases is built-in.
| DB | Minimal version |
|---|---|
HSQLDB | 2.2.9 |
MySQL | 5.5 |
MariaDB | 5.5 |
PostgreSQL | 9 |
MSSQL | 2008 R2 |
Oracle DB | 11 |
To simplify CPA administration, adapter configuration and to enable easy testing and traffic inspection, the ebMS Admin Console is also available.
Core Functionality
Security Module
Signature
Encryption
Error Handling Module
SyncReply Module
Additional Features
Reliable Messaging Module
Message Status Service
Message Service Handler Ping Service
HTTP(S) Protocol
Separate Error and Acknowledgement Messages
Core Functionality
Packaging
Additional Features
Message Order Module
Multi-Hop Module
Multiple Delivery Channels per Action
Duplicate messages will always be eliminated
Only standalone MSH level messages are supported
Only acts as ToPartyMSH, not as nextMSH
Only 1 (allPurpose) Channel per Action is supported
Manifest can only refer to payload data included as part of the message as payload document(s) contained in a Payload Container
Extendable to support other communciation protocols
Download and copy the following libraries:
c3p0-0.9.1.2.jar
Depending on your database, use:
hsqldb-2.2.9.jar
mysql-connector-java-5.1.18.jar
mariadb-java-client-1.1.9.jar
postgresql-9.1-901.jdbc3.jar or postgresql-9.1-901.jdbc4.jar
jtds-1.2.4.jar or sqljdbc4-201004.jar
ojdbc6-11.2.0.1.0.jar (and orai18n-11.2.0.1.0.jar)
You can use the ebMS Adapter in your own application by adding its JAR as a dependency.
Use nl/clockwork/ebms/main.xml as a starting point.
You will have to generate your own CPAs and implement a specific application flow for your purposes.
At the defined endpoint the application will receive an object of type EbMSMessageContent that contains:
EbMSMessageContext (needed to reply on this message)
properties (contain the properties from the ebMS Header defined in application property
ebms.message.header.propertiesattachments (the actual ebMS Message Content)
The application can instantiate a new message or reply to a received message by calling the EbMSMessageService. It should wrap the content of the message in an object of type EbMSMessageContent as an attachment. If the message is a response to a previously received message you have to include the EbMSMessageContext of the previous message. The ebMS Adapter will then correlate these messages. If the message is a new message you should leave the EbMSMessageContext empty.
This project was originally started in 2011 on SourceForge.