Category Archives: Play! framework

Play! framework 1.2.3 CRUD モジュールを拡張したJQCRUD さて、Play! framework Advent Calendar 2011 jp #play_ja の13日目。さすがに Play 2.0 の話題が多い中、まだ1.xでがんばっています。 Play との出会いは、知人(@d_noguchi)に java で Rails みたいなことができるものってないの? と聞いたところ、「Play framework があるよ、ただ自分は Scala のほうに興味がありますが・・・」、といわれて触り始めました。 もともと生産性の高い(?)Java 言語だけに、堅牢性や冗長性、などが考慮されいるフレームワークはほかにないのではないでしょうか。 今回は標準でサポートされている CRUD モジュールを拡張し、jQuery 対応をした JQCRUD を作ってみました。 Play framework JQCRUD デモサイト(更新OK!) JQCRUD モジュールを作成 Play! framwork の利点の一つとして豊富なモジュール(本家)があげられると思います。 また、このモジュールが結構簡単に作成できてしまいます。 クラスメソッド開発ブログ 「Play frameworkのいろいろなモジュール番外編 –Play Moduleを作成してみるその1」 これだけでモジュールのプロジェクトのテンプレートを作成できます。 play new-module jqcrud その後、build.xml が作成されるので、それをもとに eclipse でプロジェクトをインポートします。 当初は Play アプリケーションで実装を進めていたのですが、リファクタリングとしてモジュール化を行いました。 CRUD.java を継承し、追加(含オーバーライド)したメソッドは4つ。 index(), list(), listTable(), showJson(), createJson() です。 主に JSON 系の処理を追加しています。 処理は CRUD とほぼ一緒で […]

opencsv

大量データのテストを行うために、データの登録を行う必要がある。だいたい、そういうツールを作ってサーバ側でシェルで起動して実行する、というのがこれまでのケース。 これをもっと簡単にできないかと常々考えていたところ、簡単で気軽なライブラリであるOpenCsvがあったので使ってみた。 実は Play! Advent Calendar 12/13 で使うネタの一部です。全部紹介しきれないので、部分的に切り出しました。 環境 ・MacOSX 10.7 ・java 6 ・Play! 1.2.3 ・opencsv 2.3 <download> 処理の流れ 1.モデルの定義 2.データの準備 3.データ取り込み用のプログラム作成 4.実行テスト ではやってみよう。 モデルの定義 大量データは「なんちゃって個人情報」のデータを登録できるようにするため、このモデルを作成する。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package models;   import javax.persistence.Entity; import play.db.jpa.Model;   @Entity public class Customer extends Model { public String name; // 名前 public String kana; // ふりがな public String address; // […]

Javaフレームワーク play を使って、簡単なアプリを作ってみた。 playを使った開発の概要は、 「Javaフレームワーク「play」を使ったWebアプリ開発手順(概要)」 ◇用意するもの。 ・Java framework play http://playdocja.appspot.com/download (※今回は、play-1.2.3を使用しました。) ◇対応内容 playを使った開発の概要は、 「Javaフレームワーク「play」を使ったWebアプリ開発手順(概要)」 http://labs.zuifu.com/?p=78 に記載の通りですが、具体的には下記の通り。 1. Application.java に下記メソッドを追加  ・public static void complete()  ・public static SimpleEmail send_mail(String mailFrom, String mailTo, String mailBody)  ・protected static void errorStyle() 2. views/Application 以下にViewのテンプレートを追加  index.htmlは元からあったものを編集します。 ○index.html <textarea> #{extends ‘main.html’ /} #{set title:’SimpleMailForm’ /} <div class=”maincontents”> <table cellpadding=”0″ cellspacing=”0″ summary=”mail_form” class=”form_style” id=”mail_form”> <tbody> <form action=”/mailform/complete.html” method=”post”> <tr> <td> <label>送信元メールアドレス</label> </td> <td> <p class=’color_red’>#{error ‘mailFrom’/}</p> <input type=”text” name=”mailFrom” id=”form_mailFrom” value=”${flash[‘mailFrom’]}” maxlength=”70″ size=”18″ […]

play_framework

Javaフレームワーク「play」を使ってWebアプリを開発する際に、 複数のアプリを起動したい時、ポートを変更して起動してやれば可能だが、 playに同梱されている、eclipseフォルダ以下の[app名].launchファイルで起動 する場合は、launchファイル内にポート指定の記述があるため、 conf以下のapplication.conf内のポート変更だけでは起動できない。 1 2 3 4 FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: transport error 202: bind failed: Address already in use ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] eclipseから別ポートで複数アプリを起動するための設定手順は以下の通り。 1. conf/application.conf の以下のポートを変更 # jpda.port=8000 jpda.port=8001   # http.port=9000 http.port=9001   2. 続いて、eclipse/[app名].launch 内の以下を変更 1 2 3 4 5 6 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xdebug-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -Dplay.id= -Dapplication.path=’${project_loc:simplemailform}’ -Djava.endorsed.dirs=’C:play-1.2.3/framework/endorsed’ -javaagent:’C:play-1.2.3/framework/play-1.2.3.jar’"/> address=8000 の部分を、application.conf […]

play_framework

playでは、eclipse開発用に、eclipseプロジェクトファイル等を作成する コマンドが用意されている。 eclipseのプロジェクト単位で、 […]

play_framework

playを使ったWebアプリ開発手順の概要は、ざっくりいうと下記のような感じ。

◇playとは 一言で、生産効率を意識したJavaのフレームワーク。 http://playdocja.appspot.com/ 以下概要より。