IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Information Management | SOA and Web services  >

OmniFind Enterprise Edition V8.4 の Web サービス機能を使用する

開発元直送シリーズ

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません


レベル: 中級

川瀬 智 (KAWASES@jp.ibm.com), 情報マネジメント・テクノロジ/ソフトウェア開発研究所, IBM

2007年 3月 02日

IBM OmniFind Enterprise Edition V8.4 (以下、OmniFind)は、2006年11月にリリースされたIBM のエンタープライズ・サーチ・システムの最新バージョンです。OmniFindV8.4からWeb サービスの機能が提供され、比較的簡単に Web サービスを利用した検索アプリケーションを開発することができるようになりました。今回は、製品付属のWeb サービス・クライアント・アプリケーション(WebServiceClient)を使ってWeb サービス経由で OmniFind の検索を行う手順をご紹介します。

<前提知識> OmniFind 検索アプリケーション開発の基礎スキル、Web サービスに関する基礎スキル

第1章 : OmniFind V8.4 の Webサービスへのアクセス

OmniFind V8.4 が提供している wsdl の URL およびエンド・ポイントは次のとおりです。<hostname>は、OmniFind のサーバーのホスト名です。


WSDL の URL
                
http://<hostname>/ESSearchServer/wsdl/com/ibm/es/ws6/server/search/ofsearch.wsdl


エンド・ポイント
                
http://<hostname>/ESSearchServer/services/ofserchBinding

また、wsdl ファイルは OmniFindのサーバー上の次の場所にあります。<ES_INSTALL_ROOT>は OmniFind の導入ディレクトリーです。

<ES_INSTALL_ROOT>/installedApps/ESSearchServer.ear/ESSearchServer.war/wsdl/
com/ibm/es/ws6/server/search/ofsearch.wsdl

検索アプリケーションの開発([文献1])で使用する esapi.jarには新たに WebサービスのクライアントAPI がパッケージされました。また、この Web サービスのクライアント API を利用した簡単な検索アプリケーションが付属しています。




上に戻る


第2章 : 環境の準備

ここでは、実際に検索アプリケーションを実行するための環境の準備を行います。

サーバー環境の準備

まず始めに、OmniFind V8.4 のサーバーを用意します。次のサーバー構成情報をあらかじめ確認しておいてください。

<hostname>OmniFind サーバーのホスト名 (4ノード構成の場合は検索サーバーのホスト名)
<portNumber>検索サービスの Web サーバーポート番号 (通常は 80)
<applicationName>アプリケーション名 (デフォルトは Default)
オペレーション名quote
オペレーション・タイプ要求-応答(Request-Response)タイプ

上記のサーバーにはあらかじめ索引を作成しておき、開発環境から anonymousで接続できように、検索サービスを起動させておいてください。

開発環境の準備

今回は開発環境としてRational Application Developer 6.0 (以下、RAD)を使用します。

OmniFind V8.4 サーバー環境の lib ディレクトリー(例えば C:\Program Files\IBM\es\lib)にあるツールキット(es.siapi.toolkit.jar)を開発環境の任意のディレクトリーにコピーしておきます。この es.siapi.toolkit.jarは展開して使用します。jar コマンドが使える場合は「jar -xvf es.siapi.toolkit.jar」を実行しますが、通常のWindows 環境では、ファイルの拡張子を .jar から .zip に変更した後、Windowsの機能でファイルを展開しておきます。

サンプル・コードのビルドに必要なモジュールは siapi.jar とesapi.jar の2つです。これらは、接続先のOmniFindサーバー上にあるものを開発環境の任意のディレクトリーにコピーしておきます。バージョンによって挙動が異なる場合がありますので、かならず接続先のサーバーにあるもの(またはそれと同じバージョンのもの)を用意してください。

以上で準備は完了です。




上に戻る


第3章 : サンプルを使った Web サービス版検索アプリケーションの実行

上記の準備ができたら、サンプル・コードを開発環境にインポートし、Web サービス版検索アプリケーションを実行してみましょう。

1.新規プロジェクトの作成

1.1 RAD を起動し、「ファイル」→「新規」→「プロジェクト」をクリックします。

1.2 「java プロジェクト」を選択し、「次へ」をクリックします。

1.3 プロジェクト名 (ここでは 「SampleWebService」)を指定して、「終了」をクリックします。

※ここで、自動的に「java パースペクティブ」に切り替わります。切り替わらない場合は「ウィンドウ」→「パースペクティブを開く」→「java」をクリックします。

2.ライブラリーのインポート

1.1 java パースペクティブ上のパッケージ・エクスプローラ(ウィンドウ左のペイン)にあるSampleWebService プロジェクト上に、es.siapi.toolkit.jar を展開したディレクトリー内にあるlib ディレクトリーをドラッグ&ドロップします。ドロップされると、図1のように表示されます。


図 1. ライブラリーのインポート
図 1. ライブラリーのインポート

1.2 SampleWebService プロジェクトを右クリックして、「プロパティ」を選択します。

1.3 「java のビルド・パス」から「ライブラリー」タブをクリックし「JAR の追加」をクリックし、先ほどのlib ディレクトリーにある以下のファイルを追加します。追加すると図2のようになります。

  • clusteradapter.jar
  • es.siapi.jar
  • esapi.jar
  • ibm-jaxrpc-client.jar
  • j2ee.jar
  • siapi.jar
  • webservices.jar
  • xerces.jar

図 2 ビルド・パスの追加
図 2 ビルド・パスの追加

2.4 「OK」をクリックしてプロパティを閉じます。

3.サンプル・コードのインポート

java パースペクティブ上のパッケージ・エクスプローラ(ウィンドウ左のペイン)にあるSampleWebService プロジェクト上に、es.siapi.toolkit.jar を展開したディレクトリー内にあるsamples/webservices ディレクトリー上の3つのファイル(endpoint.properties、WebServiceClient.java、 WebServiceDetailClient.java)をドラッグ&ドロップします。ドロップされると、図3のように表示されます。


図 3 サンプル・コードのインポート
図 3 サンプル・コードのインポート

※ここで、自動的に「(デフォルト・パッケージ)」が生成され、「WebServiceClient.java」および「WebSerDetailClient.jara」が自動的にコンパイルされます。コンパイルエラーがないことを確認してください。もしもエラーが出る場合は、ライブラリーのインポートなどが正しく行われているか確認してください。

4.プロパティ・ファイルの設定

SampleWebService プロジェクトの endpoint.properties を開き、以下の「localhost」および「yourserchserver」にOmniFind サーバーのホスト名を指定します。

 # omnifind search nodes
SearchServer=locahhost\:80


# Accessible WSDL
# Modify the localhost below to one of the search servers
WSDL=http\://yoursearchserver/ESSearchServer/wsdl/com/ibm/es/ws6/server/search/ofsearch.wsdl

(注) OmniFind サーバー側をカスタマイズしている(例: アプリケーション名をDefault 以外にしているなど)場合は、それに合わせて上記プロパティ・ファイルを編集してください。

5.実行

5.1 上記「WebServiceClient.java」を右クリックして「実行」→「実行」をクリックします。

5.2 「新規」をクリックします。「WebServiceClient」という名前の Javaアプリケーションが登録されます。2回目以降は「新規」をクリックする必要はありません。

5.3「引数」タブをクリックし、引数として「endpoints.properties」を指定します。

5.4 「実行」をクリックします。照会語「IBM」で検索した結果がコンソールに表示されます。

以下は、OmniFind の導入先ディレクトリーの docs/ja_JP ディレクトリーがクロールされ、索引に入っている時の検索結果例です。

Number of results found = 6
Query evaluation time=16ms
 *** 
results[0].getDocumentID=file:///C:/Program+Files/IBM/es/docs/ja_JP/install_reqs.txt
results[0].getDescription=...<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> Lotus R Domino R サ
ーバー<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> DB2 R Administration Client Windows AIX 
R Solaris またはLinux 用の<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> ...条<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> プログラムのご使用条件またはそれと同等の条に基づい
て<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> より提供されます. ...<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> XSLT Processor Licensed Materials Property of <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> C Copyright <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> Corp. ...ここでは<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> の商標と特定の<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> 以外の商標をリストします. <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> の商標にする情報についてはhttp www <SPAN 
CLASS="OFHighlightTerm1">ibm</SPAN> com legal copytrade shtml を参照してください...
results[0].getDocumentSource=winfs
results[0].getScore=96.49309491043883
results[0].getTitle=install_reqs.txt
 *** 

...

期待する結果が得られず、以下の表示が出た場合は、endpoint.properties が正しく構成されているか確認してください。

Number of results found = 6
Query evaluation time=16ms
 *** 
results[0].getDocumentID=file:///C:/Program+Files/IBM/es/docs/ja_JP/install_reqs.txt
results[0].getDescription=...<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> Lotus R Domino R サ
ーバー<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> DB2 R Administration Client Windows AIX 
R Solaris またはLinux 用の<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> ...条<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> プログラムのご使用条件またはそれと同等の条に基づい
て<SPAN CLASS="OFHighlightTerm1">IBM</SPAN> より提供されます. ...<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> XSLT Processor Licensed Materials Property of <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> C Copyright <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> Corp. ...ここでは<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> の商標と特定の<SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> 以外の商標をリストします. <SPAN 
CLASS="OFHighlightTerm1">IBM</SPAN> の商標にする情報についてはhttp www <SPAN 
CLASS="OFHighlightTerm1">ibm</SPAN> com legal copytrade shtml を参照してください...
results[0].getDocumentSource=winfs
results[0].getScore=96.49309491043883
results[0].getTitle=install_reqs.txt
 *** 

...

また、以下の表示が出た場合は、endpoint.properties に OmniFind のサーバー名が正しく指定されている確認してください。

com.ibm.es.ws6.client.types.SiapiException: WSWS3713E: リモート・ホスト localhost との接続が失
敗しました。次のエラーを受信しました: Connection refused: no further information
        at com.ibm.es.ws6.client.OmniFindSearchable.search(OmniFindSearchable.java:179)
        at WebServiceClient.search(WebServiceClient.java:79)
        at WebServiceClient.main(WebServiceClient.java:49)
Search failed!! with following error *** WSWS3713E: リモート・ホスト localhost との接続が失敗しま
した。次のエラーを受信しました: Connection refused: no further information ***  

なお、サンプル・コード(WebServiceClient.java) は、照会語が "IBM"に固定されています。コード中の以下の場所を変更することで照会語を変更できます。

request.setQueryText("IBM");

参考文献



著者について

川瀬 智は、ソフトウェア開発研究所のプロジェクト・マネージャー兼ソフトウェア・エンジニアで、OmniFind の Lab. Based Service に従事しています。OmniFind に関する多く案件をサポートさせていただいているほか、日本アイ・ビー・エム研修サービス(株)主催の OmniFind セミナーの講師も担当しています。オフでは日本テニス協会の公式ランキング保持者としてオープン大会に参戦しています。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



はいいいえわからない
 


 


54321
大変素晴らしい不充分・不完全である
 


上に戻る


    日本IBMについて プライバシー お問い合わせ