Browsing articles in "Java"
2月
13
2010

Slim3のパッケージの変更

Slim3のgen-ctontrollerでつくると、デフォルトでは、slim3.controller配下にいってしまいます。
これを以下のように編集することで、ルートのパッケージを自分の好きなパッケージに変更できます。

war/WEB-INF/web.xml

<context-param>
  <param-name>slim3.rootPackage</param-name>
  <param-value>slim3</param-value>
</context-param>

<context-param>
  <param-name>slim3.rootPackage</param-name>
  <param-value>com.yuyak</param-value>
</context-param>
2月
11
2010

Google App Engline/Java + Slim3の環境を整えよう!

( ノ゚Д゚)こんにちわー。GAEでJavaを扱えるようになってから、もうすぐ1年が経とうとしてますね。

(中略)

そんなわけで、ここではSlim3での開発環境セットアップをある程度かいつまんで解説します。
※ ちなみにおかしなこと書いてるかもしれませんのでその辺よろしくお願いします。

開発環境の準備

Eclipseを使って開発していきます。

用意するもの

  1. 最新のJDK
  2. Eclipse JavaEE本体
  3. 日本語化
  4. Subversiveプラグイン
  5. GAE/J用のGoogle公式プラグイン

1. 最新のJDKのインストール

Java SE Downloads – Sun Developer Network (SDN)
この辺から、最新のJDKをダウンロードしてインストールしておきましょう。

2. Eclipse JavaEE本体のダウンロード

Eclipse本家のサイトから自分のOSにあったものをダウンロードします。

Eclipse Downloads

一番上の、Eclipse IDE for Java EE Developersをダウンロードします。

現時点(2010年2月10日現在)での最新版は、3.5 SR1です。ちなみに後述するGAE/J用のプラグインの対応バージョンとの兼ね合いもありますので、ものすごく最新すぎるバージョンを使う場合は注意が必要です。

3. Eclipseを日本語化する

次にEclipseの日本語化を行います。

Eclipse 日本語化言語パック (サードパーティ版)

Eclipse IDE for Java EE DevelopersのNLpackja-eclipse-jee-galileo-SR1-blancofw.zipをダウンロードします。
解凍してできたeclipseフォルダを丸ごと、先程ダウンロードしたEclipseのdropinsフォルダにいれてしまいましょう(eclipse->dropins->eclipse->features, pluginsみたいな感じになります)。

さて、ここまでで日本語化されたEclipseの完成です。
では、ここでeclipse.exeからEclipseを起動しましょう。ワークスペースなど聞かれますが、デフォルトのままで構いません。

4. Subversiveプラグインのインストール

Subversiveのダウンロードに関する本家サイトは下記のリンクですが、手順が少し複雑です。

Eclipse Subversive – Downloads
まずは[ヘルプ] → [新規ソフトウェアのインストール] を選びます。
作業対象に、「http://download.eclipse.org/technology/subversive/0.7/update-site/」と入力し、追加をクリックします。

名前は、SubversiveなどとしOKを押してください。

そして、下に出てきたSubversive系を全部チェックして次へをクリックしまくります。
途中、「同意するか」とかいろいろ出ますので、全部良きに計らってください。

インストールが完了すると、再起動するかと聞かれますので、OKを押して再起動しましょう。

再起動するとこんなのが出てきますので、とりあえず最新版のものを2種類チェックしインストールしましょう。

これも終わったら再起動するか聞かれるので再起動しておきましょう。

5. GAE/J用のGoogle公式プラグインのインストール

基本的にGoogle App Engineの詳しいことは、下記に書かれています。
デベロッパー ガイド – Google App Engine – Google Code
日本語も用意されていますし、わけわからなくても一度は目を通しておいた方がいいですよ!

さて、Eclipse 3.5用のGAE/Jプラグインのアップデートサイトは「http://dl.google.com/eclipse/plugin/3.5」です。
これを先程、Subversiveをインストールしたのと同じ方法で、インストールしましょう!

これまたインストール完了したら再起動です。

ここまできたら。。

ここまできたら、Google App Engineの開発はできます!おめでとうございます!(・∀・)
とはいえ、タイトルにある通り、今回はSlim3を使いますので、もうひと踏ん張り頑張りましょう。

Slim3のレポジトリを追加

[ウィンドウ] → [パースペクティブを開く] → [その他] からSVN リポジトリー・エクスプローラーを選びます。
左のSVN リポジトリーの白いとこで、右クリック → [New] → [Repository Location] でSlim3レポジトリを追加します。

何か細かいものがいっぱいでてきますが、やることはただ一つ!
URLに「http://slim3.googlecode.com/svn/」と入力して完了を押すだけです。

無事に追加されましたでしょうか?

Slim3の空プロジェクトをチェックアウト、実行

先ほど追加したレポジトリの、trunk/slim3-blank を右クリックして [検索/別名チェックアウト] を選びます。

出てきたダイアログで完了をクリックします。

その後、JavaEEパースペクティブに戻ります。

プロジェクト・エクスプローラーのslim3-blankを右クリックし、[実行] → [Web Application] を選択します。
コンソールの表示がこんな感じで無事に立ち上がったら成功です。おめでとうございます!

この例でいうと、http://localhost:8888/がローカルのサーバーです。

IndexControllerの追加

さて、このままではhttp://localhost:8888/にアクセスしても403 Forbiddenとなってしまいますので、IndexControllerを追加しましょう。
まずはbuild.xmlをダブルクリックして開きます。そして、右側のアウトラインから、gen-controllerを右クリック → [実行] → [Ant ビルド] をクリックします。
プロンプトが出てきますので、Indexと入力しましょう。

その後、slim3-blankを右クリック→ [リフレッシュ] をクリックします。

すると、、

IndexControllerが無事、増えてますね!

この状態で、再び、先ほどのhttp://localhost:8888/にアクセスすると、、

ジャーン!!

Hello Index !!!とか表示されます!
ヤタ━━━━━━ヽ(゚∀゚)ノ ━━━━━━!!!!

ここに書かかなかったこと

  • Eclipse自体の細かい説明や設定
  • Slim3を使用しての実際の開発
  • トラブルシューティング的なこと
    (たぶん、実際はいろんなとこでつまづくと思います。。だけれども、エラーメッセージまんまでググッたりすると結構情報はあったりしますので、まずはググりましょう!)

最後に

これで明日からは履歴書とかに「フルスタックフレームワークを用いたJavaエンタープライズ開発を行ったことがあります。特徴は大規模なクラウド、キーバリューストアを活用したスケールしやすい設計であることです。また、テスト駆動開発を取り入れることで、アジャイルな開発を行うことができました」なんて書けますね!(なんて胡散臭い履歴書なんだろう。。)

関連書籍

Google App Engine for Java [実践]クラウドシステム構築 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ) (WEB+DB PRESS plusシリーズ) Google App Engine for Java [実践]クラウドシステム構築 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ) (WEB+DB PRESS plusシリーズ)

技術評論社 2009-09-10
売り上げランキング : 34892
おすすめ平均

Amazonで詳しく見る

12月
7
2009

どれがどれのフィールドなのか(Java編)

これを自信満々で説明できるかどうかが結構重要なのである(そうなのか?w)。

public class A {
  protected String value = "aaa";

  public static void main(String[] args) {
    A a = new A();
    B b = new B();
    A c = new B();
    System.err.println(a.value);  // aaa
    System.err.println(b.value);  // bbb
    System.err.println(c.value);  // aaa
  }
}

class B extends A {
  protected String value = "bbb";
}
12月
2
2009

JTextareaとかJScrollPaneとか

JTextareaは、スクロール機能をサポートしていない。だが、Scrollableインターフェースを実装しているので、スクロール機能を持つことができるのだ。HTMLとかだと、textarea要素が一撃で全部サポートしてくれるので、JTextareaは一見不便だけど、そこはJava開発者の抽象化したい思惑があるのだろうか。。

import java.awt.BorderLayout;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;

public class TextPanel extends JPanel {

  public static final int DEFAULT_TEXTAREA_ROWS = 5;
  public static final int DEFAULT_TEXTAREA_COLS = 10;

  JScrollPane scrollPane;
  JTextArea textArea;

  public TextPanel() {
    setLayout(new BorderLayout());
    textArea = new JTextArea(DEFAULT_TEXTAREA_ROWS, DEFAULT_TEXTAREA_COLS);
    textArea.setLineWrap(true);
    scrollPane = new JScrollPane(textArea,
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
    add(scrollPane);
  }

  public void setText(String text) {
    textArea.setText(text);
  }
}

そんなわけで、上記のように書いたりすると、スクロール可能なテキストエリアを持つJPanelコンポーネントの出来上がりなのだ。

ちなみに、最初は、列と行を明示してなかったため、このコンポーネントを配備したときに、不自然な動作が多かった。setTextしたときに、他のJPanelと重なったり。。

11月
18
2009

Swing Applicatin FrameworkのHello World!

こんな感じ。

import javax.swing.JLabel;

import org.jdesktop.application.Launcher;
import org.jdesktop.application.SingleFrameApplication;

/**
 * @author yuyak
 *
 */
public class HelloWorld extends SingleFrameApplication {

  /**
   * コンストラクタ
   */
  public HelloWorld() {
    // TODO Auto-generated constructor stub
  }

  /*
   * (non-Javadoc)
   *
   * @see org.jdesktop.application.Application#startup()
   */
  @Override
  protected void startup() {
    JLabel label = new JLabel("Hello world");
    show(label);
  }

  /**
   * @param args
   */
  public static void main(final String[] args) {
    Launcher.getInstance().launch(HelloWorld.class, args);
  }

}

Swing Applicatin Frameworkを理解するには、基本的にexample(本家サイトのSVNとかで最新のものも見れる)がものすごく分かりやすいので、それ参照するのが早い気がします。

参考リンク

  1. appframework: Swing Application Framework (本家・英語)
  2. Swing Application Framework (JSR-296)
ページ:12»

Now loading...

PR

Flickr