SHOEISHA iD

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

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

Spring FrameworkとCurl ORBを用いたアプリケーション開発(AD)

Spring FrameworkとCurl ORBを用いたアプリケーション開発
サンプルアプリケーションを動かしてみよう

第1回

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

サンプルコードのインポート

 EclipseのメニューからFile -> Importを選択します。

 上記画面で、From directoryでサンプルのjava/srcディレクトリを選択し、表示されたsrcをチェックします。次にInto folder欄にcurl-orb-server/src/sampleを入力もしくは選択し、Finishボタンを押下します。

 上記のようにsampleパッケージと、Foo.java、Hoge.java、Person.java、SampleException.javaのソースコードがインポートされます。

サンプルコード説明~CurlからJavaのメソッドを呼ぶ~(1)

 sample/Hoge.javaを開きます。

package sample;

import org.springframework.stereotype.Service;

import com.curlap.orb.security.RemoteService;

/**
 * spring framework sample
 */
@Service("hoge")
@RemoteService
public class Hoge {
	
	public String hello(String name) {
		return "Hello " + name + "!";
	}
	
	public int add(int i1, int i2) {
		return i1 + i2;
	}
	
	public Person getPerson() {
		Person person = new Person();
		person.setName("hoge");
		person.setAge(20);
		person.setSex(true);
		return person;
	}
	
	public Object echo(Object v) {
		return v;
	}
	
	public void throwException() throws SampleException {
		throw new SampleException("happned sample exception!");
	}
}

 このHogeクラスは単純なPOJOで作成されたサービスクラスです。このクラスをSpringにBeanとして登録するため、@Serviceアノテーションを利用しています。(idは"hoge")この@Serviceアノテーションを付与したサービスクラスをSpringに自動的に登録させるために、Springの設定ファイルであるapplicationContext.xmlファイルに、以下の一行を追加します。

<context:component-scan base-package="sample"/>

 実際の中身については、WebContent/WEB-INF/applicationContext.xmlを参照ください。

 また、@RemoteServiceアノテーションというものがありますが、これはCurl ORBのアノテーションで、クライアントからのアクセス制御のために使用します。Curl ORBでは、4つのパラメータ(none、development、test、production)を指定でき、web.xmlでこれを切り替えることができます。以下はweb.xmlの一部です。

<context-param>
  <param-name>com.curlap.orb.environment</param-name>
  <param-value>development</param-value>
</context-param>

 例えば、@RemoteService(Environment.DEVELOPMENT)と指定したサービスクラスは、web.xmlでdevelopmentと指定した場合のみアクセス可能で、test、productionでサーバが稼動している場合はアクセスできません。また、@RemoteService(Environment.PRODUCTION)と指定した場合は、すべてのパラメータでアクセス可能となります。サンプルコードのようにEnvironmentを省略した場合は、Environment.PRODUCTIONがセットされます。ちなみに、noneの場合は@RemoteServiceのアノテーションなしで、アクセス可能となります。詳細についてはこちら(セキュリティ設定)を参照ください。

 また、サービスクラス内で利用するデータクラスPersonや例外クラスSampleExceptionを以下のように用意しています。データクラスは、CurlとJavaの通信用のデータとなります。データクラス内で利用できる型は、プリミティブ型、String、配列、リスト、連想配列、日付型、BigInteger、BigDecimal、Personのようなユーザ定義クラス、Curl特有のRecordSetなどがあります。詳しくはこちら(いろいろなデータ型のサポート)を参照ください。

Personクラス
package sample;

/**
 * data class sample
 */
public class Person implements java.io.Serializable {
	
	private static final long serialVersionUID = -8122761322568223564L;

	private String name;
	private int age;
	private boolean sex;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
}
SampleExceptionクラス
package sample;

/**
 * sample exception
 */
public class SampleException extends Exception {

	private static final long serialVersionUID = -9029774938234791120L;

	public SampleException(String message) {
		super(message);
	}
}

次のページ
サンプルコード説明~CurlからJavaのメソッドを呼ぶ~(2)

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

  • このエントリーをはてなブックマークに追加
Spring FrameworkとCurl ORBを用いたアプリケーション開発連載記事一覧
この記事の著者

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

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3842 2009/04/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング