このWebサービスは、公開するHelloWorld EJBのエンドポイント・インタフェースを使用して定義します。 このサービスはJavaインタフェースであり、
@WebServiceアノテーションでマークされます。
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public interface HelloServiceInf extends java.rmi.Remote{
@WebMethod java.lang.String sayHello(java.lang.String name) throws java.rmi.RemoteException;
}
EJBの実装を提供する実際のBeanクラスは、エンドポイント・インタフェースを実装する簡単なJavaクラスです。
@WebService
@Remote(HelloServiceInf.class)
@Stateless(name="HelloServiceEJB")
public class HelloServiceBean implements HelloServiceInf {
public String sayHello(String name) {
return("Hello "+name +" from first EJB3.0 Web Service");
}
}
@Statelessアノテーションは、BeanをステートレスEJBとしてマークします。
name属性は、HelloServiceEJBをEJBの使用する名前として指定します。
@WebServiceアノテーションは、Webサービス・インタフェースおよびEJBのデプロイメント・ディスクリプタに注釈を付けるために使用できますが、必須ではありません。 ステートレスEJB Webサービスを配置するために、
webservices.xmlなどの他のWebサービス・デプロイメント・ディスクリプタをパッケージ化する必要は
ありません。
注: 一部のEJB 3.0 APIは、EJB 3.0の最終仕様で変更される可能性があり、ご使用のアプリケーションをEJB 3.0最終仕様に適合させるための変更が必要な場合があります。 オラクルは、この仕様の最終版に適合する将来のバージョンのOracle Application Server Containers for J2EEについて、すべてのEJB 3.0機能の下位互換性を保証することはできません。