Author: manaRH
Date: 2012-08-14 13:20:41 -0400 (Tue, 14 Aug 2012)
New Revision: 15039
Modified:
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Webservices.xml
Log:
JBSEAM-5013 webservices updated
Modified:
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Webservices.xml
===================================================================
---
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Webservices.xml 2012-08-14
16:42:50 UTC (rev 15038)
+++
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Webservices.xml 2012-08-14
17:20:41 UTC (rev 15039)
@@ -2,7 +2,7 @@
<title>Web Services</title>
<para>
- Seam integrates with JBossWS to allow standard JEE web services to take full
advantage of Seam's contextual framework,
+ Seam integrates with JBossWS to allow standard Java EE web services to take full
advantage of Seam's contextual framework,
including support for conversational web services. This chapter walks through the
steps required to allow web
services to run within a Seam environment.
</para>
@@ -17,28 +17,20 @@
</para>
<para>
- A special configuration file,
<literal>standard-jaxws-endpoint-config.xml</literal> should be placed
+ A special configuration file, <literal>soap-handlers.xml</literal>
should be placed
into the <literal>META-INF</literal> directory of the
<literal>jar</literal> file that contains the
web service classes. This file contains the following SOAP handler configuration:
</para>
- <programlisting role="XML"><![CDATA[<jaxws-config
xmlns="urn:jboss:jaxws-config:2.0"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="urn:jboss:jaxws-config:2.0
jaxws-config_2_0.xsd">
- <endpoint-config>
- <config-name>Seam WebService Endpoint</config-name>
- <pre-handler-chains>
- <javaee:handler-chain>
-
<javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
- <javaee:handler>
- <javaee:handler-name>SOAP Request
Handler</javaee:handler-name>
-
<javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>
- </javaee:handler>
- </javaee:handler-chain>
- </pre-handler-chains>
- </endpoint-config>
-</jaxws-config>]]></programlisting>
+ <programlisting role="XML"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
+<handler-chains
xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-name>SOAP Request Handler</handler-name>
+
<handler-class>org.jboss.seam.webservice.SOAPRequestHandler</handler-class>
+ </handler>
+ </handler-chain>
+</handler-chains>]]></programlisting>
</sect1>
@@ -51,19 +43,21 @@
</para>
<programlisting role="XML"><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
-
xmlns:seam="http://seambay.example.seam.jboss.org/">
+
xmlns:sb="http://seambay.example.seam.jboss.org/">
<soapenv:Header>
- <seam:conversationId
xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:c...
+ <seam:conversationId
xmlns:seam='http://www.jboss.org/seam/webservice'>4</seam:c...
</soapenv:Header>
<soapenv:Body>
- <seam:confirmAuction/>
+ <sb:setAuctionPrice>
+ <arg0>100</arg0>
+ </sb:setAuctionPrice>
</soapenv:Body>
-</soapenv:Envelope>
+</soapenv:Envelope>
]]></programlisting>
<para>
As you can see in the above SOAP message, there is a
<literal>conversationId</literal> element within the
- SOAP header that contains the conversation ID for the request, in this case
<literal>2</literal>.
+ SOAP header that contains the conversation ID for the request, in this case
<literal>4</literal>.
Unfortunately, because web services may be consumed by a variety of web service
clients written in a
variety of languages, it is up to the developer to implement conversation ID
propagation between individual
web services that are intended to be used within the scope of a single
conversation.
@@ -75,14 +69,14 @@
able to read the conversation ID from the request. Here's an example of a
response to the above request message:
</para>
- <programlisting role="XML"><![CDATA[<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header>
- <seam:conversationId
xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:c...
- </env:Header>
- <env:Body>
- <confirmAuctionResponse
xmlns="http://seambay.example.seam.jboss.org/"/>
- </env:Body>
-</env:Envelope>
+ <programlisting role="XML"><![CDATA[<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+ <soap:Header>
+ <seam:conversationId
xmlns:seam="http://www.jboss.org/seam/webservice">4</seam...
+ </soap:Header>
+ <soap:Body>
+ <ns2:setAuctionPriceResponse
xmlns:ns2="http://seambay.example.seam.jboss.org/"/>
+ </soap:Body>
+ </soap:Envelope>
]]></programlisting>
<para>
@@ -127,7 +121,9 @@
</para>
<programlisting role="JAVA"><![CDATA[@Stateless
-@WebService(name = "AuctionService", serviceName = "AuctionService")
+@Name("auctionService")
+@WebService(name = "AuctionService")
+@HandlerChain(file = "soap-handlers.xml")
public class AuctionService implements AuctionServiceRemote
{
@WebMethod