Session Beanには通常、なんらかのビジネス・タスクまたはアクティビティが実装されます。一般に、Session Beanは特定のクライアント・リクエストに対してインスタンス化または作成され、たいていは単一セッションの持続期間中のみ存在します。Session Beanはあらゆる目的で使用できますが、通常、1回限りの計算や情報検索など、特にデータが永続化されないケースで使用されます。
-
空のプロジェクトを新規に作成します。「Annotation」プロジェクト・ノードを右クリックし、「New」→「From Gallery」を選択します。New Galleryで、Categoriesリストから「General」→「Projects」を選択し、Itemsリストから「Custom Project」を選択します。「OK」をクリックします。
-
新しいプロジェクトにEJB-Annoという名前をつけ、その他はデフォルト値のままにします。「Finish」をクリックします。
-
「EJB-Anno」プロジェクトを右クリックして、「New」→「From Gallery」を選択します。
-
New Galleryで、Categoriesリストの「Business Tier」ノードを開き、「EJB」を選択します。Items列で「Session Bean」を選択し、「OK」をクリックします。
-
新しいSession Beanウィザードで、ステップ4が表示されるまで「Next」をクリックします。EJB Version(Enterprise JavaBeans 3.1(Java EE 6.0))、Name、Class Definitionの各ページではデフォルト値を受け入れます。
-
Interfacesページですべてのチェック・ボックスの選択を解除します。このため、インタフェースの実装は行われません。「Next 」をクリックしてから「Finish」をクリックするとBeanが作成されます。
-
SessionEJBBean.javaファイルがエディタ内に開きます。前のシナリオと同じsayHello()メソッドを追加します。
public String sayHello (String s) {
return "Hello " + s;
}
クラスは次のように表示されます。
-
「
」Save Allをクリックして作業内容を保存します。
この時点では、Helloという単語のあとにパラメータとして入力された値を返す、シンプルなビジネス・ロジックをもったクラスを作成したに過ぎません。次の項では、先ほどと同様にWebサービスのアノテーションを追加します。 -
クラス定義の上にInterfacesアノテーションを追加します。JDeveloperによって自動的にjavax.jws.WebServiceのimport文が追加されます。@WebServiceというコード行をクリックしてから、左余白内の電球マークをクリックします。「Configure project for web services」をクリックし、このWebサービス・プロジェクトの残りの部分を構成します。
-
POJOシナリオの場合と同様に、sayHelloメソッドの上に@WebMethodアノテーションを追加します。 要求されたら[Alt]を押しながら[Enter]を押して、import文を追加します(この文は自動的に追加される場合もあります)。
-
「
」Save Allをクリックして作業内容を保存します。
この項では、Webサービスのコンパイル、デプロイ、およびテストを行います。前述の項と同様に、HTTP Analyzerを使用してWebサービスのテストを行います。HTTP Analyzerを使用してWebサービスをテストする場合、サービスがコンパイルされ、統合サーバーにデプロイされます。これによりアナライザが起動され、テスト時にWebサービスへの値の送受信が可能になります。
-
アプリケーション・ナビゲータで「SessionEJBBean.java」ノードを右クリックし、コンテキスト・メニューから「Test Web Service」を選択します。
前述の項と同様に、HTTP Analyzerエディタの上部にはWebサービスのURL、WSDL URL、および公開される操作が表示されます。
-
リクエスト領域で、arg0フィールドに<あなたの名前>を入力して、「Send Request」をクリックします。
次に、アナライザによってサービスにリクエストが送信され、しばらくすると戻りパラメータが表示されます。
-
「Close」をクリックしてすべてのタブを閉じ、「EJB-Anno」プロジェクトを閉じます。
![ブックマーク](../_image/bookmark.png)
![印刷](../_image/print_ena.png)