JavaOne2013レポート 9/24 (3日目)

3日目は Java SE と Java EE のセッションに参加。Java SE のセッションは理解できなかったのも多いので、レポートというよりは備忘録。 Developers’ Introduction to HotSpot Internals [CON6446] セッションのテーマはJava仮想マシン入門について。Java仮…

JavaOne2013レポート 9/23 (2日目)

理解できた範囲でキーノートの新しい発表というとAvatarのオープンソース化しかなかったので、2日目のセッションからまとめ。 Notify Your Mobile Clients by Integrating Push Networks and Java EE 7 [CON5073] RedHatのAeroGear開発者のセッション。 テー…

Java EE環境におけるCDIのデフォルト化

Java EE 7 に含まれるCDI1.1より、beans.xmlをアーカイブに含めなくてもCDIが有効となるように仕様が変更されました。この改善点、Java EE 6ユーザにとっては少し困惑する部分があったので、まとめておきます。CDIとはなんぞやについてはこちらもご参照くだ…

GlassFishで Java Batch について勉強会で話してきた

ブログを書くまでが勉強会。GlassFish勉強会 2013#01に行ってきたのでメモ。 当日の資料や様子は、@yamadamnさんが作ってくれたまとめにあると思います。 HeapStatsでGlassFish4障害解析 @sugarlife さん HeapStatsは低オーバーヘッドが売り (Specjvm2008で…

NetBeans&GlassFish4でJava EE 7 を始めよう

Java EE 7 のリリースが6月12日にせまってきていますが、GlassFish4の開発版が同梱されているNetBeansの開発版(nightly build)を使うと、一足先にJava EE 7 アプリケーションのコーディングをすることができます。普段Eclipse+JBossToolsを使っていて、NetBe…

JSF2.0のエラーハンドリング

JSF2.0のエラーハンドリングについて調べてみたのでまとめる。ここで言う『エラーハンドリング』とは、Struts1.xの<globa-exceptions>や、org.apache.struts.action.ExceptionHandlerを継承してユーザが作成するカスタム例外ハンドラを想定しており、Struts1.xと同じようなこと</globa-exceptions>…

JBossAS7 データソース設定 WebコンソールとCLIの違い

JBossAS7でEJBのコンテナ管理トランザクションが動かないことではまっていたが、WebコンソールとCLIでJTAを有効にするかどうかのデフォルトが違ったのが原因だったようだ。 Webコンソールの場合 Webコンソールから作成すると、デフォルトでUse JTA?はfalseに…

JBossAS7でトランザクションの動作を確認する

Spring3 入門を読んでいて、トランザクションの開始・終了がEJBを使ったJavaEEアプリケーションでも出力できないか考えてみた。 CDIのTransactionnal Observerで試行錯誤 : 失敗 CDIでは、トランザクションの成功・失敗・開始などの合わせてイベントを起動す…

JSF2.xでValidationグループを設定する

BeanValidation1.0では、@NotNullなどの各検証アノテーションにgroup属性を設定することができます。これは、同じドメインオブジェクトに対して、検証のルールのパターンが複数ある場合に有効です。例えば、以下のような画面を想定してみます。本の登録では…

CDIとMyBATIS3.1を組み合わせる

iBATIS2.xの後継ソフトウェアである、MyBatis3.xとJavaEE環境をどう組み合わせるか考える。MyBatis3.xは、iBATISの開発グループがApache Software FoundationからGoogleCodeに場所を移して開発が続けられているSQLベースのO/Rマッパである。2010年5月にバー…

Java EE 7 バッチ標準仕様について調べてみた

JavaOne2012でセッションを聞いてから、ずーっとさぼっていたがやっと調べた。 Batch Applications for the Java Platform (JSR352) Javaバッチフレームワークの標準仕様がJava EE 7に向けて策定が進められている。 Spring Batchをベースに策定され、現在の…

JSF2.0でボタンの2度押しチェックをする

この記事は Java EE Advent Calendar 2012*1 の12/18分の記事です。昨日は@yumix_hさんの JAX-RSでファイルアップロード! です。 明日は@den2snさんです。今回は、ボタンの2度押しチェックについて考えてみたいと思います。 1. ボタンの2度押しとは 2度押し…

Faceletsにコメント文を書く

FaceletsのXHTMLにコメントを書く時に少しはまったのでメモ。(以下のコードはJBossAS7.1で確認) うまくいかない例 (HTMLコメントをそのまま使う) コマンドボタンを以下のようにコメントアウトすると、Submitしたときではなく、ボタンを含むページを開いたと…

Apache MyFaces Extension Validator(extVal)で相関チェック

BeanValidationはJSF2.xと統合した場合に、JSFから自動的に呼び出されるのはプロパティ単位のバリデーションのみである。クラス単位のバリデーションは呼び出されない。 (参考 http://stackoverflow.com/questions/11972419/cross-field-bean-validation-why…

CDIとiBATIS2.3を組み合わせる

ネイティブクエリのみをシンプルに実行したい場合は、まだまだiBATIS(MyBATIS)を使う機会もあると思います。ここではiBATIS2.3とJava EE6のContest and Dependency Injection(CDI)を組み合わせて、JPAのEntityManagerのように、iBATISのSqlMapClientをインジ…

BeanValidationで日本語メッセージを出力する

BeanValidation1.0の参照実装であるHibernate Validatorのデフォルトメッセージは英語です。例えば@NotNullでは「may not be null」、@AssertTrueでは「must be true」といったメッセージが出力されます。通常、JSF2.0を組み合わせて使うときには『"名前"が…

@NotNull/@NotEmpty/@NotBlankの違い

JavaEE6から新しい仕様BeanValidation(JSR303)が導入されています。BeanValidationではアノテーションでユーザ入力チェックを定義することができます。Struts1.xではvalidation.xmlの記述量が多く、度重なるタイプミスとランタイムエラーに苦しめられてきま…

ELとCDI管理Beanがうまく結びつかないとき

Struts1.xユーザがJSF2.0に移行すると、javax.el.PropertyNotFoundExceptionが500エラーの原因として表示されたり、@ModelでアノテートしたCDI管理Beanのパラメータが#{bean.property}でうまく出力されないことがあると思います。この原因は主に2つあります…

JavaEE7の"Managed Bean"の行方

JavaEE6を使い始めて、つまずいたのが"Managed Bean"の考え方。JavaEE6では、大きく分けて以下のコンテナ管理Beanがある。 JSFのManagedBean CDIのManagedBean EJBのManagedBean Servlet、Filter、JAX-RS、JPAなどのその他コンテナ管理オブジェクト @javax.a…

JavaEE7からPaaS対応が見送られた

JavaOne2012の準備をする。英語がまともに聞き取れないので、出発する前から報告書の準備をする。こんな時には、Java Community Process、一部の重要な情報だけに見えるが、いくつかの議論の内容をメーリングリスト公開している。私のように英語が苦手な人間…