Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
23.3. An example web service
The example code that follows is from the seamBay example application, which can be found in Seam's
/examples
directory, and follows the recommended strategy outlined in the previous section. First, we will look at the web service class and one of its web service methods:
Here, the web service is a stateless session bean annotated with the JWS annotations from the
javax.jws
package, as defined by JSR-181. The @WebService
annotation tells the container that this class implements a web service. The @WebMethod
annotation on the login()
method identifies the method as a web service method. The name
and serviceName
attributes in the @WebService
annotation are optional.
When the web service is a stateless session bean, each method that will be exposed as a web service method must also be declared in the remote interface of the web service class. In the previous example, since the
AuctionServiceRemote
interface is annotated as a @WebService
, it must declare the login()
method.
In the previous example, the web service implements a
login()
method that delegates to Seam's built-in Identity
component. As our recommended strategy suggests, the web service is written as a simple facade. The real work takes place in a Seam component. This means that business logic is reused efficiently between web services and other clients.
In the following example, the web service method begins a new conversation by delegating to the
AuctionAction.createAuction()
method:
The code from
AuctionAction
is as follows:
Here, we see how web services can participate in long-running conversations by acting as a facade and delegating the real work to a conversational Seam component.