みなさまこんにちは、アプレッソ開発部の佐々木と申します。
今回の記事では、DataSpider SDK Tips第一段、「DataSpiderServerをEclipseから起動する」についてご紹介しようと思います。
DataSpiderServerをEclipseから起動できるようになると、Eclipse上でデバッグ実行しながらDataSpider SDKによるアダプタ開発が可能になるといったメリットがあります。ご興味のある方はご一読いただければ幸いです。
事前準備
開発環境として以下をインストールしているマシンを用意します。
・DataSpider SDKによるアダプタ開発が可能なDataSpiderServer
・JDK(Java SE Development Kit 6u22)
・Eclipse
上記がインストールできたら、次はEclipseのセットアップを行います。
Eclipseのセットアップ
Eclipseを起動して、jdk1.6.0_22をインストール済みJREとして登録します。
そして、Javaのコンパイラレベルを「1.6」に設定します。
Eclipseのセットアップができたら、次はDataSpiderをEclipseのプロジェクトとして登録します。
DataSpiderをEclipseプロジェクトして登録
インストールしたDataSpiderをEclipseのプロジェクトとして登録するには、
.projectファイルと.classpathファイルを作成し、$DATASPIDER_HOMEディレクトリ直下に配置します。
.projectファイルと.classpathファイルは、それぞれ以下の内容で作成します。
・.project ファイル
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>DataSpiderServista</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
・.classpath ファイル
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/
org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_22"/>
<classpathentry kind="output" path="bin"/>
</classpath>
.projectファイル、.classpathファイル配置後は以下のようになります。
.projectファイル、.classpathファイルを配置したら、Eclipseのインポート機能を使って$DATASPIDER_HOMEディレクトリをインポートします。
インポート後、Eclipse上で以下のように「DataSpiderServista」というプロジェクトが表示されれば、Eclipseのプロジェクトとして登録できたことになります。
Eclipseのプロジェクトとして登録できたら、次はプロジェクトのビルドパスを設定します。
ビルドパスの設定
ビルドパスには、以下のjarファイル、およびクラスフォルダを設定します。
・jarファイル
-$DATASPIDER_HOME/server/system/common/libディレクトリ下にあるすべてのjarファイル
-$DATASPIDER_HOME/server/system/bootディレクトリ下にあるすべてのjarファイル
-$DATASPIDER_HOME/server/system/boot/endorsedディレクトリ下にあるすべてのjarファイル
・クラスフォルダ
-$DATASPIDER_HOME/server/system/boot/classes
-$DATASPIDER_HOME/server/system/common/classes
ビルドパスが設定できたら、次はEclipseからDataSpiderServerを起動するための設定をします。
DataSpiderServer起動設定の作成
まず、EclipseのJavaアプリケーション起動設定で「DataSpiderServer」という名前の起動設定をを新規作成します。
ちろん、これだけではDataSpiderServerは起動しません。
DataSpiderServerを起動させるために必要な設定情報はすべて以下のファイルに記述されています。
・$DATASPIDER_HOME/server/bin/DataSpiderServer.lax
では、必要な情報を取得していきましょう。
・メインクラス
メインクラスは、DataSpiderServer.laxファイルで以下のように設定されています。
# LAX.MAIN.CLASS
# --------------
# the class that contains the main method for the application
lax.main.class=com.appresso.ds.boot.Main
Eclipseの起動設定には、以下のようにメインクラスを設定します。
・プログラム引数
プログラム引数は、DataSpiderServer.laxファイルで以下のように設定されています。
LAX.COMMAND.LINE.ARGS
# ---------------------
# what will be passed to the main method -- be sure to quote arguments with spaces in them
lax.command.line.args=--rebootCommand=..\\system\\conf\\runServer.bat --rebootCommandArgs="--startSleep=1000"
Eclipseの起動設定には、以下のようにプログラム引数を設定します。
・VM引数
VM引数は、DataSpiderServer.laxファイルで以下のように設定されています(Xms、Xmx の値は異なる場合があります)。
lax.nl.java.option.additional=-Ddataspider.documentgenerator.command=.\\DocumentGenerator -server -Djava.ext.dirs=..\\system\\boot\\ext;..\\..\\jre\\lib\\ext -Djava.endorsed.dirs=..\\system\\boot\\endorsed -Djava.system.class.loader=com.appresso.ds.boot.CommonClassLoader -Ddataspider.home=.. -Ddataspider.product=DataSpider -Ddataspider.boot.class=com.appresso.ds.boot.main.DataSpiderServerMain -Ddataspider.boot.type=server -Ddataspider.boot.wait.before.abort=true -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true -XX:MaxPermSize=128M -Xms512M -Xmx1024M
Eclipseの起動設定には、以下のようにVM引数を設定します。
最後に、Eclipseの起動設定の「ワーキングディレクトリ」に以下のパスを設定します。
・${workspace_loc:DataSpiderServista/server/bin}
以上でDataSpiderServerの起動設定は完了です。
次はいよいよDataSpiderServerの起動です。
DataSpiderServerの起動
DataSpiderServerの起動設定から起動ボタンを押下してDataSpiderServerを起動するとEclipseのコンソールにDataSpiderServerの標準出力が出力されます。以下のように、DataSpiderServerが正常に起動したという内容がコンソールに出力されれば、EclipseからDataSpiderServerの起動に成功したことになります。
最後に
今回はEclipseで設定する手順をご紹介しましたが、メインクラス、プログラム引数、VM引数はEclipseに依存したものではないので、他のIDEでも設定方法は違えど基本的には同じ考え方で適用できるのではと思っています。Eclipse以外のIDEでDataSpider SDKによるアダプタ開発を行われている方は、ぜひトライしてみてください!