WebサービスとしてのセッションBeanの公開は非常に簡単であり、ほとんどの手順が、JDeveloperのウィザードおよびダイアログを使用することで自動化されます。 セッションBeanに対してWebサービス・エンドポイント・インタフェースを生成(第4.4.1項「セッションBeanの作成方法」)すると、JSR-181 Webサービス・ライブラリがプロジェクトに自動的に追加され、@WebService注釈がセッションBeanに追加されます。 「Beanメソッドの詳細」ダイアログを使用してメソッドを作成(第4.4.5項「セッションBeanへの新規メソッドの追加方法」)すると、「Webサービス・エンドポイント・インタフェースによる公開」を選択した場合に、適切な注釈が追加されます。
ただし、既存のセッションBeanがある場合、またはメソッドを手動でコーディングする必要がある場合は、それも可能です。 次のコードは、Webサービス注釈を示すCustomerService.javaファイルです。
例4-10 Webサービス注釈が追加されたCustomerService.java
package org.soademo.customerservice.business; import java.rmi.RemoteException; import javax.ejb.Remote; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import org.soademo.customerservice.persistence.Customer; @WebService(serviceName = "CustomerSvc", targetNamespace = "http://www.globalcompany.com/ns/customer") public interface CustomerService { @WebMethod Customer findCustomerById( @WebParam(name = "custid", targetNamespace = "http://www.globalcompany.com/ns/customer") String custid) throws RemoteException; @WebMethod String getCustomerStatus( @WebParam(name = "CustomerID", targetNamespace = "http://www.globalcompany.com/ns/customer") String CustomerID); @WebMethod String addNewCustomer( @WebParam(name = "customer", targetNamespace = "http://www.globalcompany.com/ns/customer") Customer customer); @WebMethod Customer findCustomerByEmail( @WebParam(name = "email", targetNamespace = "http://www.globalcompany.com/ns/customer") String email, @WebParam(name = "password", targetNamespace = "http://www.globalcompany.com/ns/customer") String password); }