SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CurlデベロッパーセンターPick Up(AD)

Curl ORB for javaによるサーバ連携

  • このエントリーをはてなブックマークに追加

アプリケーションの構築手順

 CurlとJavaを連携するアプリケーションを構築するには以下の手順を実施します。

  1. サーバサイドのサービスクラス作成
  2. サーバサイドのサービスクラスからCurlコードを自動生成
  3. クライアントコードを記述

1.サーバサイドのサービスクラス作成

 サーバサイドでcom.testパッケージと次のようなHelloクラスを作成します。

package com.test;
public class Hello {
    // methods
    public String sayHello(String str) {
        return "Hello " + str;
    }
}

 作成しましたら、サーバを再起動します(下図ようにサーバを選択し、"右クリック-Restart"を実行します)。

2.サーバサイドのサービスクラス(POJO)からCurlコードを自動生成(コード・ジェネレータ)

 次にダウンロードしたCurlORBモジュールの中のcurl-orb-clientディレクトリにある、code-generator.dcurl(コード生成ツール)を起動します。

 上記画面にて"Service Class (Http Session)"を選択してNextボタン押下します。

 上記画面にてcom.test.Hello(パッケージ名.クラス名)を入力してNextボタンを押下します。

 上記画面にてClass Fileの"File"ボタンを押下し、出力先を決定した後、"Generator"ボタンを押下します。これによりHello.scurlとload.scurlが生成されます(以下が生成されたコード)。

Hello.scurl
|||
||| NOTE: *** This code was generated automatically ***
|||
|| PACKAGE COM.TEST
|| You might add this filename to load.scurl in this package. 
|| e.g) {include "Hello.scurl"}

{import * from COM.CURLAP.ORB.SERVLET}
{define-class public Hello {inherits ORBClient}
  {constructor public {default} 
    {construct-super.ORBClient "tests1.Hello"} 
  }
  {method public {say-hello v0:String}:#String 
    {return {self.invoke "sayHello", arguments = {FastArray v0}}}
  }
}
load.scurl
{curl 6.0 package} 
{package COM.TEST}
{include "Hello.scurl"}

 コード生成ツールの詳細な利用方法についてはこちらを参照ください。

注意

 CurlのネーミングルールとJavaのネーミングルールの差を吸収するため、デフォルトではJavaのパッケージ名がCurl側では大文字に変換されます(例えば、com.test->COM.TEST)またメソッド名は大文字部分がハイフン+小文字となります(例えば、sayHello - say-hello)。

3.クライアントコードを記述

 まず、Curl側で新規プロジェクトを作成("ファイル - 新規 - 新規プロジェクト - アプレットを含んだプロジェクト"を選択)します。次にCurl ORBクライアントを取り込むため、"プロジェクト - デリゲート先の追加"でダウンロードしたCurl ORBディレクトリのclient/COM/CURLAP/ORB/manifest.mcurlを選択します。

 次に生成されたファイル(Hello.scurlとload.scurl)をプロジェクトに追加するため、"プロジェクト - パッケージの追加"を選択し、生成されたload.scurlを選択します。

 上記準備が完了しましたら以下のようなテストアプレット(start.curl)を作成しますと、自動的にサーバサイドへリクエストを投げ、サーバサイドのHelloクラスのsay-helloメソッドを実行し、結果をクライアントで受け取ることができます。

{curl 6.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}
{applet manifest = "manifest.mcurl"}
{import * from COM.TEST} || import

{value
  def h = {Hello} || new insntace
  {popup-message {h.say-hello "foo"}} || invoke method
}

 上記の結果は"Hello foo"というメッセージがポップアップで出力されます。このように簡単にCurlとサーバ通信を行うことができます。

利用できるデータ型

 Curl ORBのデータ通信には以下のデータ型を利用できます(これは、サービスクラスのコンストラクタやメソッドの引数および戻り値、フィールドのデータクラスとして利用できる型です)。

Curl Java
int int
int8 byte
int16 short
int32 int
int64 long
float float
double double
bool boolean
char char
String java.lang.String
DateTime java.util.Date
FastArray-of データ型 配列
Array (Array-of any) List, ArrayList
HashTable (HashTable-of any) Map, HashMap
ByteArray com.curl.io.serialize.types.ByteArray
COM.CURLAP.ORB.TYPE.SerializableRecordSet
COM.CURLAP.ORB.TYPE.SerializableRecordField
com.curlap.orb.type.SerializableRecordSet
com.curlap.orb.type.SerializableRecordField
ユーザ定義型(フィールドは上記のものに限る) ユーザ定義型(フィールドは上記のものに限る)

 また、Curlのユーザ定義型(PersonとかFooとか)をJavaのクラスから生成する場合は、"Data Class"としてコード生成ツールから生成します。

おわりに

 第1回目の今回は、Curl ORBの簡単なORBの利用方法を説明しました。次回は、Spring Frameworkとの連携方法について説明をしていく予定です。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
CurlデベロッパーセンターPick Up連載記事一覧

もっと読む

この記事の著者

岡田 一志(オカダ ヒトシ)

大企業向けSI開発、IT基盤設計/構築やiDC設立プロジェクトの企画/開発/運用など幅広く活躍し、2006年にCurlに参画する。米Curl社(マサチューセッツ)にてCurl Core RTEの設計・開発に従事した後、現在は株式会社カールにて、Innovation Centerのオペレーションおよび...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3221 2008/12/15 17:52

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング