ISSUE-69: Ambiguity in spec. and potential interoperability problem with BytesMessage payload
Ambiguity in spec. and potential interoperability problem with BytesMessage payload
- SOAP-JMS Binding specification
- Raised by:
- Mark Phillips
- Opened on:
- The binding specification states that the JMS Message should be either BytesMessage or TextMessage, but it is not specific about which JMS API methods are used to read and write the message payload. For TextMessage this is not a problem because there are only two methods (setText and getText) but there are many different methods for composing and reading a BytesMessage.
The choice of methods on BytesMessage leads to a potential interoperability problem. For example, in IBM we have seen problems where one system writes a BytesMessage payload with the writeBytes() method, and another system attempts to read the message with the readUTF() method. The readUTF() fails or produces unpredictable results because the payload has not been formatted as a length-prefixed Java UTF8 string.
This is a simple problem to solve for organisations that own (and can modify) both sending and receiving applications to ensure that they write and read the BytesMessage in a consistent way, but if the message is written or read inconsistently by different vendor's middleware stacks (as could be the case with SOAP/JMS) then it will lead to incompatible implementations.
To remove this ambiguity I propose the following amendment to the SOAP JMS binding spec.:
In section 2.4, after the sentence...
"The contents of the JMS Message body MUST be the SOAP payload as a JMS BytesMessage or TextMessage."
...add a new sentence which reads:
"If the message is formatted as a JMS BytesMessage then the sender MUST write the payload with a writeBytes() method, and the receiver MUST read the payload with a readBytes() method.".
- Related Actions Items:
- No related actions
- Related emails:
- Agenda for 2011-01-04 conference call - Regrets (from firstname.lastname@example.org on 2011-01-04)
- Agenda for 2011-01-04 conference call (from email@example.com on 2011-01-03)
- ACTION-236 complete (from M8PHILLI@uk.ibm.com on 2010-12-21)
- Agenda for 2010-12-21 conference call (from firstname.lastname@example.org on 2010-12-20)
- Agenda for 2010-12-14 conference call (from email@example.com on 2010-12-20)
- Completion of ACTION-235 (from M8PHILLI@uk.ibm.com on 2010-12-16)
- ISSUE-69: Ambiguity in spec. and potential interoperability problem with BytesMessage payload [SOAP-JMS Binding specification] (from firstname.lastname@example.org on 2010-12-16)
Opened as per:
Amended proposal accepted as per:
Application of resolution approved:
Display change log