3日目は Java SE と Java EE のセッションに参加。Java SE のセッションは理解できなかったのも多いので、レポートというよりは備忘録。 Developers’ Introduction to HotSpot Internals [CON6446] セッションのテーマはJava仮想マシン入門について。Java仮…
理解できた範囲でキーノートの新しい発表というとAvatarのオープンソース化しかなかったので、2日目のセッションからまとめ。 Notify Your Mobile Clients by Integrating Push Networks and Java EE 7 [CON5073] RedHatのAeroGear開発者のセッション。 テー…
Java EE 7 に含まれるCDI1.1より、beans.xmlをアーカイブに含めなくてもCDIが有効となるように仕様が変更されました。この改善点、Java EE 6ユーザにとっては少し困惑する部分があったので、まとめておきます。CDIとはなんぞやについてはこちらもご参照くだ…
ブログを書くまでが勉強会。GlassFish勉強会 2013#01に行ってきたのでメモ。 当日の資料や様子は、@yamadamnさんが作ってくれたまとめにあると思います。 HeapStatsでGlassFish4障害解析 @sugarlife さん HeapStatsは低オーバーヘッドが売り (Specjvm2008で…
Java EE 7 のリリースが6月12日にせまってきていますが、GlassFish4の開発版が同梱されているNetBeansの開発版(nightly build)を使うと、一足先にJava EE 7 アプリケーションのコーディングをすることができます。普段Eclipse+JBossToolsを使っていて、NetBe…
JSF2.0のエラーハンドリングについて調べてみたのでまとめる。ここで言う『エラーハンドリング』とは、Struts1.xの<globa-exceptions>や、org.apache.struts.action.ExceptionHandlerを継承してユーザが作成するカスタム例外ハンドラを想定しており、Struts1.xと同じようなこと</globa-exceptions>…
JBossAS7でEJBのコンテナ管理トランザクションが動かないことではまっていたが、WebコンソールとCLIでJTAを有効にするかどうかのデフォルトが違ったのが原因だったようだ。 Webコンソールの場合 Webコンソールから作成すると、デフォルトでUse JTA?はfalseに…
Spring3 入門を読んでいて、トランザクションの開始・終了がEJBを使ったJavaEEアプリケーションでも出力できないか考えてみた。 CDIのTransactionnal Observerで試行錯誤 : 失敗 CDIでは、トランザクションの成功・失敗・開始などの合わせてイベントを起動す…
BeanValidation1.0では、@NotNullなどの各検証アノテーションにgroup属性を設定することができます。これは、同じドメインオブジェクトに対して、検証のルールのパターンが複数ある場合に有効です。例えば、以下のような画面を想定してみます。本の登録では…
iBATIS2.xの後継ソフトウェアである、MyBatis3.xとJavaEE環境をどう組み合わせるか考える。MyBatis3.xは、iBATISの開発グループがApache Software FoundationからGoogleCodeに場所を移して開発が続けられているSQLベースのO/Rマッパである。2010年5月にバー…
JavaOne2012でセッションを聞いてから、ずーっとさぼっていたがやっと調べた。 Batch Applications for the Java Platform (JSR352) Javaバッチフレームワークの標準仕様がJava EE 7に向けて策定が進められている。 Spring Batchをベースに策定され、現在の…
この記事は Java EE Advent Calendar 2012*1 の12/18分の記事です。昨日は@yumix_hさんの JAX-RSでファイルアップロード! です。 明日は@den2snさんです。今回は、ボタンの2度押しチェックについて考えてみたいと思います。 1. ボタンの2度押しとは 2度押し…
FaceletsのXHTMLにコメントを書く時に少しはまったのでメモ。(以下のコードはJBossAS7.1で確認) うまくいかない例 (HTMLコメントをそのまま使う) コマンドボタンを以下のようにコメントアウトすると、Submitしたときではなく、ボタンを含むページを開いたと…
BeanValidationはJSF2.xと統合した場合に、JSFから自動的に呼び出されるのはプロパティ単位のバリデーションのみである。クラス単位のバリデーションは呼び出されない。 (参考 http://stackoverflow.com/questions/11972419/cross-field-bean-validation-why…
ネイティブクエリのみをシンプルに実行したい場合は、まだまだiBATIS(MyBATIS)を使う機会もあると思います。ここではiBATIS2.3とJava EE6のContest and Dependency Injection(CDI)を組み合わせて、JPAのEntityManagerのように、iBATISのSqlMapClientをインジ…
BeanValidation1.0の参照実装であるHibernate Validatorのデフォルトメッセージは英語です。例えば@NotNullでは「may not be null」、@AssertTrueでは「must be true」といったメッセージが出力されます。通常、JSF2.0を組み合わせて使うときには『"名前"が…
JavaEE6から新しい仕様BeanValidation(JSR303)が導入されています。BeanValidationではアノテーションでユーザ入力チェックを定義することができます。Struts1.xではvalidation.xmlの記述量が多く、度重なるタイプミスとランタイムエラーに苦しめられてきま…
Struts1.xユーザがJSF2.0に移行すると、javax.el.PropertyNotFoundExceptionが500エラーの原因として表示されたり、@ModelでアノテートしたCDI管理Beanのパラメータが#{bean.property}でうまく出力されないことがあると思います。この原因は主に2つあります…
JavaEE6を使い始めて、つまずいたのが"Managed Bean"の考え方。JavaEE6では、大きく分けて以下のコンテナ管理Beanがある。 JSFのManagedBean CDIのManagedBean EJBのManagedBean Servlet、Filter、JAX-RS、JPAなどのその他コンテナ管理オブジェクト @javax.a…
JavaOne2012の準備をする。英語がまともに聞き取れないので、出発する前から報告書の準備をする。こんな時には、Java Community Process、一部の重要な情報だけに見えるが、いくつかの議論の内容をメーリングリスト公開している。私のように英語が苦手な人間…