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);
}