JSF 2.2ではf:eventのpreRenderViewではなくf:viewActionを使う?

JSF 2.2でf:viewActionというコンポーネントが追加されています。 基本はJSF 2.0で初期画面表示時に処理を動作させる時に使っていた f:eventのpreRenderViewと同じなのですが微妙に違うところがあります。 まずは単純に呼び出された回数をカウントするバッキ…

JSF 2.2 で待ちに待ったFileUploadを試す

JSF 2.2 でやっと導入されたFileUploadを試してみました。 まずサーバ側のBackingBeanを作成します。 package sample; import javax.inject.Named; import javax.enterprise.context.RequestScoped; import javax.servlet.http.Part; @Named @RequestScoped …

Java EE 7のTransactionalアノテーションを試してみる

Java EE 7からの新機能 JTA 1.2で追加されたTransactionalアノテーションを試してみた。 まずmessageというフィールドをもった単純なEntityクラスを作成して @Entity public class Test implements Serializable { private static final long serialVersionU…

Java EE 7(GlassFish V4)でJAX-RSのMVCテンプレートを動かす

GlassFish V4でJersyのMVCテンプレートを動かしてみました。 基本は下のブログで書いたGlassFish V3の時と大きく変わりません。 Javaを知らない世代が今からはじめるJava EE開発 http://den2sn.hatenablog.com/entry/2012/12/19/001146 V4で注意する点は2つ …

JavaからCacoo APIを簡単に呼び出せるCacoo4jを作った

Cacoo(https://cacoo.com/)のAPIをJavaから簡単に呼び出すライブラリを作りました。・Cacoo4J https://github.com/den2sn/cacoo4jクラスパスにzip内の「cacoo4j-1.0.0.jar」を通すと使えるようになると思います。 認証にOAuthを使用する場合はさらに「sign…

JSFのFaceletsでxhtmlに直接アクセスさせない方法

JSFでFaceletsを作成すると/facesでアクセスする場合は良いのですが、直接xhtmlファイルにアクセスするとソースがそのまま表示されて微妙な感じですよね。xhtmlファイルに直接アクセスさせないようにするには基本JSPで行う対処法と変わりません。 ただし、JS…

BootstrapやjQueryをWebJarsで簡単管理

BootstrapやjQuery等のクライアントサイドライブラリを管理するのって意外とめんどくさいですよね。WebJarsはよく使用されるクライアントサイドライブラリをJarに固めてJVMベースのWebアプリケーションで簡単に扱えるようにしようというプロジェクトです。 W…

リリース間近!Java EE 7の気になるところ

やっとやっと待ちに待ったJava EE 7のリリースが近づいて来ましたね。 予定では5/13(日本だと14日?)にFinal Releaseのようです。 https://java.net/projects/javaee-spec/pages/Home#Java_EE_7_Schedule リリースに備えて軽く自分の備忘録も兼ねて予習し…

JSF2.0で一覧表示

JAX-RSでデータの一覧表示を作成してみましたが今度は同じ画面をJSFで作成してみます。 JSFはサーバサイドのメモリーを多く使用するため不特定多数ユーザが利用するサービスには不向きですが、クライアントサーバ型のアプリケーションのようにWEBアプリケー…

JAX-RSとKnockout.jsでJSON連携

JavaEE Advent Calendar 2012のブログ記事で書いたJAX-RSのサンプルではjersyのViewableクラスを使用したJSPによる画面描画を紹介しました。今回はjsonデータを返却してクライアントサイドで描画する方法を紹介します。 今回はクライアントサイドの描画にシ…

JSF2のf:eventでアクションが何度も呼び出されてしまう

JSF2のfaceletsでf:eventというレンダリングの初期処理を行うタグがあるのだけれど、なぜか処理がが2重に呼び出される問題が発生。 私が記載していた記述が以下。 <f:metadata> <f:event type="preRenderView" listener="#{bean.init}" /> </f:metadata> 正しくはこっち。 <f:event type="preRenderView" listener="#{bean.init}" /> f:eventタグはまったくf:metadataで囲む必要は無いのだけれどブックマ</f:event>…

Javaを知らない世代が今からはじめるJava EE開発

JavaEE Advent Calendar 2012 の19日目の記事です。 昨日は@n_agetsuさんの JSF2.0でボタンの2度押しチェックをするでした。 明日は@hiranasuさんのNativeQueryじゃだめ?~JPAクエリ表現ごとのパフォーマンス比較です。 Java EEの何について書こうかなと思…

アジャイルにだいぶ慣れてきたので思うところまとめ

アジャイル開発を初めて3ヶ月くらいたちました。週1のイテレーションにもだいぶ慣れスムーズに開発が行えるようになってきたので、アジャイルについて感じた事をまとめてみます。 思っていたより品質は落ちない ダブルチェックや品質評価をウォーターフォー…

Railsでajaxリクエストが2回送信されてしまう

Javalerなのに最近Rubyプログラマな私です。 Railsではヘルパーのform_forメソッドで:remote => trueというパラメータを渡すとformタグにdata-remote=trueというHTML5の属性が追加されて後はRailsのJavaScriptがよろしくデータをAjax送信してくれるわけです…

アジャイル開発を一日だけやって思った事

7月からアジャイル開発でシステム開発を行う事になりました。アジャイル開発は知識的には理解しているつもりではいて、部分的な手法についてはウォータフォール開発でも取り入れたりしていたのですが、完全に頭からシッポまでアジャイル開発というのは今回初…

デファクトアーキテクトから考える今のJavaに足りないところ

なんとなくWebサイトを構築する際の各層の現在のJavaのデファクトアーキテクチャってなんだろうと考えてみた。 ・ビュー JSF、JSP ・コントロール JSF、JAX-RS ・ビジネスロジック EJB ・データベース JPA ・テスト JUnit ・ロギング Logging API こうやって…

はてなブログに移行してみた

はてなダイアリーからはてなブログに移行してみました。 ダイアリーからのインポート機能がついたので移行してみたいなと思ってはいたのですがまだ機能が少なくかったりするということで躊躇していたのですが思い切って移行してみました。 戻す機能もあるよ…

GlassFish Users Group Japan 勉強会 June 2012に行ってきた

6/4にGlassFish Users Group Japan 勉強会 June 2012に参加してきました。今回はOracleの寺田さんにオファーを頂いて発表する運びとなりました。 atnd http://atnd.org/events/28235 GlassFishはもう仕事で4年以上使用しているのですが、とても使いやすく、…

JavaからScalaへ

最近はScalaの勉強をしています。注目していたplayframeworkがバージョン2.0でJavaだけでなくScalaにも対応したという事が大きいですが、企業内においてもScalaを使ったアプリケーションの事例が増えてきているように感じます。 Scalaはコンパイルするとclas…

やっぱりRubyじゃなくてJavaじゃないかな

Rubyを使って2年くらい開発をしてたりしますが、処理は劇的に簡単に書ける一方でやっぱりRubyじゃなくてJavaなんじゃないかなと思ったりしています。 RubyかJavaかという話というよりは動的型付けか静的型付けかという話なんですが、Rubyとかだとインスタン…

詳細設計は本当に必要なのか

プロジェクトによって呼び方はまちまちですが、ウォーターフォール開発では設計書の作成が基本設計と詳細設計に分かれています。基本設計はユーザに提供する機能や操作を定義し、詳細設計は実装に必要な内部的な仕様を定義します。 ウォータフォール開発の定…

Beginning Java EE 6

Weblogic & JavaEE活用セミナーレポートの企画で twitter で 「JavaEEあるある」というハッシュタグでつぶやくとJavaEE6本が当たるというキャンペーンでつぶやいたらなんと「Beginning Java EE 6」を頂きました。やっと読み終えたので感想を書きます。 総評 …

基本設計ではユーザフローについても明記する

基本設計ではアプリケーションの設計にかかわる設計書以外にユースケースシナリオやユーザフローのようなユーザがどのようにアプリケーションを使用するのかという事も設計書に明記しておく必要があります。 なぜなら、ウォータフォール開発では基本設計が終…

テスト密度などの指標まとめ

結局皆さんテスト密度等の実際の数字が気になるところですよね。今まで出てきた数字をまとめてみます。指標の数字は実施している手順やテストケースの書き方等に大きく影響されるので一概にこれが正しいという数字はありません。しかしなにも手がかりや実績…

実は近くに落ちていた工数見積の銀の弾

工数見積りに銀の弾はないと書きましたが、実は比較的容易に下手するとだれにでも工数見積が行える方法があります。それは基本設計に実際かかった工数を元にその後にかかる実装やテストの見積りを行う方法です。基本設計が終了していれば明確に仕様が決まっ…

ウォータフォールの工数見積に銀の弾はない

ウォーターフォル開発の見積り手法については昔から議論されてきました、COCOMOのようなステップ数による見積りから始まり、外部入出力から見積りを行うファンクションポイント法(FP法)、ユースケース図から見積りを行うユースケースポイント法等さまざまな…

開発期間とデスマーチの関係

理想の開発期間を求める方法はわかりましたが、プロジェクトによってはその開発期間のとおりに期限を設定できない場合もあります。しかし、開発期間をむやみに短くしてしまうとプロジェクトが破綻する可能性が急激に高くなってしまうので十分な注意が必要で…

JavaOne Tokyo 2012に行ってきた #JavaOneJP

4/4(水)、4/5(木)に六本木ヒルズで開催されたJavaOne Tokyo 2012に行ってきました。 今回は実に7年ぶりの開催という事で、待ちに待っていたJavaを愛する人たちが集結していて熱気あふれる2日間でした。とても楽しかったです。「Moving Java Forward」とい…

ウォーターフォールの適切な開発期間を見積る

ウォターフォール開発には工数に見合った適切な開発期間というものがあります。100人月の作業が100人いたら1ヶ月で終わるかといったらそんなことはありません。100人月かかる作業にはそれに合わせた開発期間が必要です。ではどうやって開発期間を求めれば良…

なぜアジャイル開発ではステップ数を数えないのか

さんざんウォータフォール開発とステップ数について記載してきましたが、実はステップ数による評価はアジャイル開発でも同様に利用する事が出来ます。しかしアジャイル開発でステップ数による評価を行うようなことはほとんどありません。それはいったい何故…