How Do I: Tell Developers of Non-WebLogic Workshop Clients How to Participate in Conversations?

For the most part, making your web service accessible to other client applications is as simple as providing a WSDL or Java proxy file. However, if your web service uses the conversation or callback capabilities of WebLogic Workshop, some additional work may be required.

Information about conversations (the conversation instance identifier) and callback URL are transmitted through SOAP headers on the messages that are passed between the client and the web service. If the client is not build with WebLogic Workshop, it will need to set the required SOAP headers manually.

# Calling a Start Method

In order to call a start method, the client must propose a conversation ID. The conversation ID is a string with no format restrictions. The conversation ID must be unique on the server hosting the target web service, however. Clients may wish to use a combination of the client machine's hostname, IP address, process ID, clock time or other data that in combination is likely to be unique to that client. If a client proposes a conversation ID that is not unique on the server, a SOAP fault will be returned. The maximum length of the conversation ID is configured in the jws-config.properties Configuration File.

If the client wishes to receive callbacks from the web service, it must send a second SOAP header specifying the URL to which callback messages should be sent.

The general form of the SOAP headers for a start method is as follows:

    <SOAP:Header>
        <StartHeader xmlns="http://www.openuri.org/2002/04/soap/conversation/">
            <callbackLocation>Callback_URL</callbackLocation>
            <conversationID>Conversation_ID</conversationID>
        </StartHeader>
    </SOAP:Header>

Most web service tools include an API through which SOAP headers can be set. Please see your vendor’s documentation for more detailed information.

# Calling a Continue or Finish Method

When you call a continue or finish method, you pass only the conversation ID. If the specified conversation ID does not identify an existing conversation on the target server, a SOAP fault will be returned.

    <SOAP:Header>
       <ContinueHeader xmlns="http://openuri.org/2002/04/soap/conversation/">
           <conversationID>Conversation_ID</conversationID>
       </ContinueHeader>
    </SOAP:Header>

# Samples

For an example of a .NET client that participates in a conversation with a WebLogic Workshop web service, and optionally accepts results via callback, see .NET Client Sample.

Related Topics

Maintaining State with Conversations

Overview: Conversations