此内容没有您所选择的语言版本。
23.2. Conversational Web Services
Seam uses a SOAP header element in both SOAP request and response messages to carry the conversation ID between the consumer and the service. One example of a web service request containing a conversation ID is:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:seam="http://seambay.example.seam.jboss.org/">
<soapenv:Header>
<seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>
2
</seam:conversationId>
</soapenv:Header>
<soapenv:Body>
<seam:confirmAuction/>
</soapenv:Body>
</soapenv:Envelope>
The above SOAP message contains a
conversationId element, which contains the conversation ID for the request — in this case, 2. Because web services can be consumed by a variety of web service clients written in a variety of languages, the developer is responsible for implementing conversation ID propagation between individual web services to be used in a single conversation's scope.
The
conversationId header element must be qualified with a namespace of http://www.jboss.org/seam/webservice, or Seam will be unable to read the conversation ID from the request. An example response to the above request message is:
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
<seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>
2
</seam:conversationId>
</env:Header>
<env:Body>
<confirmAuctionResponse
xmlns="http://seambay.example.seam.jboss.org/"/>
</env:Body>
</env:Envelope>
Note that the response message contains the same
conversationId element as the request.
23.2.1. A Recommended Strategy 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Since web services must be implemented as either stateless session beans or POJOs, we recommend that conversational web services implement the web service as a facade for a conversational Seam component.
If the web service is written as a stateless session bean, it can be transformed into a Seam component by annotating it with
@Name. This allows Seam bijection, and other features, to be used in the web service class itself.