TIBCO ActiveMatrix BusinessWorks

This section describes the case of a SOAP client based on TIBCO ActiveMatrix Businessworks.

The user wants to maintain a session (Statefull) across multiple web service calls. In this case, the user must invoke the Login service and BusinessWorks needs to maintain the sessionId returned from Login service in global context and append the jsessionid=<> to the endpoint URL.

  • Ensure that endpoint URL contains the appropriate SOAP Action. For example,
    • For Login: http://<servername>:<port>/eml/services/AdminService/loginAction
    • For Add Record: http://<servername>:<port>/eml/services/router/MasterCatalogRecordAction;jsessionid=T2yJKLDPzSY4CjcbzpG
  • For WAS, ensure URL re-writing is enabled and the jsession ID is prefixed with 0000. For example, <0000jsessionID> is appended to the endpoint URL. For example,
    • For Add Record: http://<servername>:<port>/eml/services/router/MasterCatalogRecordAction;jsessionid=0000T2yJKLDPzSY4CjcbzpG
    • For Logout: http://<servername>:<port>/eml/services/AdminService/logoutAction;jsessionid=0000T2yJKLDPzSY4CjcbzpG

      Prefixing 0000 with jsession ID is required because jsession ID cookie in WAS contains cache ID, which is prefixed to the session ID. The retrieved session ID in the response omits this cache ID, which is 0000 in most cases. Hence, you must explicitly prefix 0000 to the session ID while using a SOAP client.

The user credentials are provided at the time of login and for every subsequent call the jsessionid token is passed. The BW-client provides an input area for the SOAPRequestReply activity as shown in the following figure:

If the user does not want to maintain a session (Stateless), the user need not invoke the Login service. However, you need to provide the userInfo in every consecutive invocation of any service. If the userInfo is not provided, an error is displayed.