SHOEISHA iD

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

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

Java開発者のためのCurl入門(AD)

Java開発者のためのCurl入門-Curl ORB for Javaの活用

第3回

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

Curlコードの自動生成 1

サーバーサイドの準備

 サーバーサイドでの準備は、コードの記述と、web.xml、curl-config.xmlの設定です。コードは、前回作成したEmpServiceなどを利用することとします。

 Curl ORB for Java固有の設定をweb.xmlに追記する必要があります。設定を行ったweb.xmlは次のようになります。下記のソースコードでは、S2Servletの記述をコメントアウトしていますが、これについては後述します。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
	xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	version="2.4">

~中略~

  <filter>
    <filter-name>DefaultFilter</filter-name>
    <filter-class>com.curlap.orb.servlet.DefaultInstanceManagementFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>DefaultFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>InvokeInContextServlet</servlet-name>
    <servlet-class>com.curlap.orb.servlet.InvokeInContextServlet</servlet-class>
    <load-on-startup>3</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>InvokeInContextServlet</servlet-name>
    <url-pattern>/invoke-in-context</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>NewInstanceServlet</servlet-name>
    <servlet-class>com.curlap.orb.servlet.NewInstanceServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>NewInstanceServlet</servlet-name>
    <url-pattern>/new-instance</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>InvokeServlet</servlet-name>
    <servlet-class>com.curlap.orb.servlet.InvokeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>InvokeServlet</servlet-name>
    <url-pattern>/invoke</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>DestroyInstanceServlet</servlet-name>
    <servlet-class>com.curlap.orb.servlet.DestroyInstanceServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DestroyInstanceServlet</servlet-name>
    <url-pattern>/destroy-instance</url-pattern>
  </servlet-mapping>

~中略~

<!--
	<servlet>
		<servlet-name>s2servlet</servlet-name>
		<servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>s2servlet</servlet-name>
		<url-pattern>/s2servlet</url-pattern>
	</servlet-mapping>
-->

</web-app>

 Seasar2をDIコンテナに利用する場合には、次のようにcurl-config.xmlのSeasar2ApplicationContextを有効にします。curl-config.xmlは、web.xmlと同じディレクトリ内に配置します。

curl-config.xml
<?xml version="1.0" encoding="UTF-8"?>

<!-- Curl ORB Configuration file -->
<curl-config>

  <!-- ApplicationContext ServletContext(default), spring2, seasar2 -->
  <!-- Spring2 -->
  <!--
  <application-context 
    name="spring2"
    class="com.curlap.orb.context.Spring2ApplicationContext" 
  />
  -->
  <!-- Seasar2 -->
  <application-context 
    name="seasar2"
    class="com.curlap.orb.context.Seasar2ApplicationContext" 
  />

  <!-- ACL(Access control list) -->
  <access-control-list>
    <allow class="*" />
  </access-control-list>
</curl-config>

 通常、S2コンテナの初期化処理はS2Servletによって行われますが、Curl ORB for Javaでは、Seasar2ApplicationContextによってS2コンテナの初期化処理が行われます。仮に、web.xmlにS2Servletの記述が有効であれば、初期化処理が2度行われてしまいます。そのため、web.xmlのS2Servletに関する箇所をコメントアウトしています。

 また、Webアプリケーションは、次のURLでアクセス可能な箇所に配置する必要があります。

  • http://localhost:8080/curl-orb-server/

 これは、Curlクライアントのコードを生成するときの制限となっています。また、Curl ORB for Java実行時に利用されるデフォルトのURLでもあります。

Curlコードの自動生成

 Webアプリケーションを起動したあとに、「Curl ORB - Code Generator Wizard(以下、Generator Wizard)」を起動します。curl-orb_0.5_stable_binに含まれるcode-generator.dcurlはデスクトップアプリケーションなので、ダブルクリックすることで起動できます。起動すると次のような画面が表示されます。

 Service Class(DI)を選択し、「Next」ボタンをクリックします。

 生成対象を選択し、「Next」ボタンをクリックします。

 インターフェースを選択し、「Next」ボタンをクリックします。

 生成するメソッドなどを選択し、「Class File」でコードの出力場所指定し、「Generate」ボタンをクリックするとコードが生成されます。

 さらに、Generator Wizardの最初の画面で、「Data Class」や「Exception Class」から必要なクラスに関しても同様の手順でコード生成を行います。

次のページ
Curlコードの自動生成 2

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Java開発者のためのCurl入門連載記事一覧

もっと読む

この記事の著者

木村聡(キムラサトシ)

2000年からJavaによるWeb開発に携わる。Seasarプロジェクトコミッタであり、コミッタとしての経験をもとに現在は仕事としてフレームワークの開発を行っている。著書に、「Javaフレームワーク開発入門」や「Eclipseで学ぶはじめてのJava」等がある。

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3334 2008/12/16 10:27

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング