anchor.diff:  ==== EJB Cancel
   
   Method::: ++DELETE++
  -URI:: +/ejb/cancel/\{applicationName}/\{moduleName}/\{distinctName}/\{invocation-id}+
  -Additional Required Headers::
  -+Accept: application/x-wf-ejb-jbmar-cancelled;version=1+
  +URI:: +/ejb/v1/cancel/\{applicationName}/\{moduleName}/\{distinctName}/\{invocation-id}+
  +Additional Required Headers::
   +Cookie: JSESSIONID=\{sessionAffinityKey}+
   Request Body::
   The request body is empty.
   
   This message cancels an async request.
  -
  -==== EJB Affinity
  -
  -Method::: ++GET++
  -URI:: +/ejb/affinity+
  -Additional Required Headers::
  -+Accept: application/x-wf-ejb-jbmar-affinity-result;version=1+
  -Request Body::
  -The request body is empty.
  -
  -This message generates a session id, that can be used to make sure requests end up at the same backend node.
   
   === Response Messages
   
  
positive.code: 
  ==== EJB New Session
  
  Message Type:: +application/x-wf-ejb-jbmar-new-session+
  Required Headers::
  +x-wf-ejb-jbmar-session-id: \{newSessionId}+
  Optional Headers::
  +Set-Cookie: JSESSIONID=\{sessionAffinityKey}+
  Response Body::
  
negative.code: In most cases it is expected that session affinity will be used to make sure that invocations on the EJB target the correct server.
  
  ==== EJB Cancelled
  Response Body:: None
  Response Codes:: 
   * +202+ Returned for a successful invocation
   * +404+ Returned if the invocation was not found (i.e. it has already completed)
  
  == JNDI Protocol
  
  The JNDI protocol provides similar functionality to the existing remote JNDI implementation, but over HTTP. All JNDI URL’s are prefixed with +/jndi+.
  