ダウンロード
ダウンロードはSourceForge(下記URL)からダウンロードします。(curl-orb-V0.8.zipをダウンロードします。)
http://sourceforge.net/projects/curlorb
Eclipse開発環境へCurl ORBをセットアップ
Curl ORBサーバをEclipseへセットアップする手順を説明します。この開発環境をセットアップする前に、以下のツールをダウンロード及びインストールします。
- Java5.0 SDK (or Java6.0)
- Eclipse3.6 + WTP (Eclipse IDE for Java EE Developers) (or 3.5)
- Apache Tomcat5.5 (or Tomcat6.0)
- Curl IDE8.0 (CurlをEclipse上で稼動させるには6.0.4以上)
ツールのインストール後、Eclipseを起動し、新規プロジェクトを作成します。”File – New – Other”を選択し、”New”画面のツリーから、”Web – Dynamic Web Project”を選択し、”Next”ボタンを押下します。次に”New Dynamic Web Project”画面が表示されますので、任意の”Project name”を入力し”Next”ボタンを押下します。最後に”Context Root”に”curl-orb-server”を入力し、”Finish”ボタンを押下しますと、新規プロジェクトが作成されます。
次にCurl ORBサーバを当プロジェクトに取り込むため、ダウンロードしたファイルの”java/web/WEB-INF”と”java/web/index.html”を当プロジェクトのWebContentディレクトリ配下に上書きコピーします。
上記の設定が終了しましたら、Eclipse上でTomcatを起動します。これには、当プロジェクトを右クリックし、”Run AS – Profile on Server”でサーバの設定(Tomcatのホームや当プロジェクトをこのサーバ設定に追加等の設定)をし、サーバを起動します。WTPの詳細については、ThinkITが参考になると思います。
(注意)EclipseでTomcatを起動する前に、Tomcatが停止されていることを確認してください。
動作確認
動作確認をするには、http://localhost:8080/curl-orb-server にブラウザからアクセスしてください。”Welcome to Curl ORB for java”と表示されましたらサーバのセットアップは成功です。
簡易アプリケーションの構築手順
CurlとJavaを連携するアプリケーションを構築するには以下の手順を実施します。
- サーバサイドのサービスクラス(POJO)作成
- サーバサイドのサービスクラス(POJO)からCurlコードを自動生成
- クライアントコードを記述
1.サーバサイドのサービスクラス(POJO)作成
サーバサイドでcom.testパッケージと以下のようなHelloクラスを作成します。(ここでは@RemoteServiceアノテーションを付け忘れないようにしてください。)
package com.test; import com.curl.orb.security.RemoteService; @RemoteService // constructor // methods |
作成しましたら、サーバを再起動します。(下図ようにサーバを選択し、”右クリック-Restart”を実行します。)
2.サーバサイドのサービスクラス(POJO)からCurlコードを自動生成(コード・ジェネレータ)
次にダウンロードして解凍したファイルのcurl-orb-V0.8/curl/COM.CURL.ORB-V0.8/8.0ディレクトリ にあるcode-generator.dcurlを起動します。(もちろん事前にCurlランタイムのインストールが必要です。)
上記画面にて”Service Class (Http Session)”を選択してNextボタン押下します。
上記画面にてcom.test.Hello(パッケージ名.クラス名)を入力してNextボタンを押下します。(Browseボタンを押下しますと一覧から選択することもできます。)
上記画面にてClass Fileの”File”ボタンを押下し、出力先を決定した後、”Generator”ボタンを押下します。これによりHello.scurlとload.scurlが生成されます。(以下が生成されたコード)
Hello.scurl
{import * from COM.CURL.ORB} {define-class public Hello {inherits HttpSessionClient} {constructor public {default server-url:#Url = null} {method public {say-hello v0:String}:#String } |
load.scurl
{curl 8.0 package} |
コード生成ツールの詳細な利用方法についてはこちらを参照ください。
注意)
CurlのネーミングルールとJavaのネーミングルールの差を吸収するため、Javaのパッケージ名がCurl側では大文字に変換されます。(例えば、com.test->COM.TEST)またメソッド名は大文字部分がハイフン+小文字となります。(例えば、sayHello – say-hello、sayHELLO – say-hello)
3.クライアントコードを記述
まず、Curl側で新規プロジェクトを作成(”ファイル – 新規 – 新規プロジェクト – アプレットを含んだプロジェクト”を選択)します。次にCurl ORBクライアントを取り込むため、”プロジェクト – デリゲート先の追加”でダウンロードしたCurl ORBディレクトリのcurl/COM.CURL.ORB-V0.8/8.0/manifest.mcurlを選択します。
次に生成されたファイル(Hello.scurlとload.scurl)をプロジェクトに追加するため、”プロジェクト – パッケージの追加”を選択し、生成されたload.scurlを選択します。
上記準備が完了しましたら以下のようなテストアプレット(start.curl)を作成しますと、自動的にサーバサイドへリクエストを投げ、サーバサイドのHelloクラスのsay-helloメソッドを実行し、結果をクライアントで受け取ることができます。
{curl 8.0 applet} {import * from COM.TEST} || import {value |
上記の結果は”Hello foo”というメッセージがポップアップで出力されます。
注意)
サーバサイドのCurl ORBのデフォルトURLはhttp://localhost:8080/curl-orb-serverです。変更方法は、こちらです。
補足.通信するデータにユーザ定義クラスを利用する
上記の例では通信はStringで行いましたが、String以外にも多くのデータ型をサポートします。たとえば、Javaで以下のようなPersonクラスを作成します。
package com.test; public class Person implements java.io.Serializable { public Person() { public Person(String name, int age) { public String getName() { |
このクラスからCurlコードを自動生成します。このクラスのコードを生成するために、コード生成ツールで”Data class”を指定します。(*サーバの再起動が必要です。)
また、JavaのHelloクラスも以下のように書き換え、コード生成ツールによってコードを再生成します。
※生成方法は、上記「2.サーバサイドのサービスクラス(POJO)からCurlコードを自動生成」参照
package com.test; import com.curl.orb.security.RemoteService; @RemoteService // constructor } // methods public Person callPerson() { |
これらを利用するため、先ほど作成したCurlテストアプレットを以下のように変更します。
{curl 8.0 applet} {import * from COM.TEST} || import {value |
実行しますと、ポップアップメッセージで”hokada 25″と表示されます。
このようにユーザ定義クラスもデータ通信クラスとして利用することができます。
(*’any’ から暗黙的キャストは禁止(または不正使用)されています。というメッセージのエラーが出る場合はこちら。)
最終的なディレクトリ・ファイル構成は以下のようになります。
似たような記事ですが、CodeZineにも掲載しております。
その他機能
各種機能については、こちらを参照ください。