此内容没有您所选择的语言版本。
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.