2011-01-01から1年間の記事一覧

標準化の威力

私の父は定年後も電気技師(でいいのかな?)として働いているのですが、先日重い機器を運ぶ要員として手伝いに行きました。 この作業、他の会社の方々との共同だったのですが、父と初めて顔を合わせる方々ばかりだったのです。 ソフトウェア開発の現場だと、…

2つの画像の異なる部分を見つける

2つの画像の大きさは同じっていう前提。 final BufferedImage image1 = ImageIO.read(file1); final BufferedImage image2 = ImageIO.read(file2); final BufferedImage delta = new BufferedImage(image1.getWidth(), image1.getHeight(), image1.getType(…

開発の下準備

最近やっとiPhoneにしたのでアプリを開発しようとしているのですが、iPhoneアプリを開発するには先にアプリケーション開発ガイドを読からにといけない、と思いました。 何かやりたいことがあってもスタンダードな解決策が分からないし、下手に自己流で作った…

eclipseでJPAのメタモデルを自動生成する設定

プロジェクトのプロパティを開く Project FacetsでJPAにチェックを付けてプロジェクトにJAPサポートを追加 プロジェクトのプロパティをいったん閉じる(重要!これをしないとJAPの設定項目が現れない) プロジェクトのプロパティを再び開く Java Persistence…

JAX-RSを使う

JavaEE6でJAX-RSを使う手順のメモ。 JAX-RSで処理するパスのルートを設定 具体的にはjavax.ws.rs.core.Applicationクラスを継承したクラスを作りjavax.ws.rs.ApplicationPathアノテーションを付けます。 以下サンプル。 /** * */ package sandbox.resource; …

ファイルアップロードの最大サイズ指定

久々のエントリです。過去のエントリで あと、セキュリティ面からアップロードファイルのサイズ制限などの設定は必須ですが、アノテーションでしか指定出来ないのは困ります。今回調査したJSFのように、既存フレームワークとの連携が非常にやりにくくなりま…

JSFで会話スコープを終わらせつつ自画面に遷移

若干はまったのでメモ。あるBeanの会話スコープを終わらせるにはConversation#end()を呼ぶわけですが、このメソッドを呼んだからと言ってプロパティが初期化されたりはしません。当たり前と言えば当たり前ですが。このことが若干問題になることがあります。 …

プリミティブ型は抽象型?

System.out.println(Modifier.isAbstract(int.class.getModifiers())); の結果は"true"。知らんかった。他にも System.out.println(Modifier.isAbstract(String[].class.getModifiers())) System.out.println(Modifier.isAbstract(Serializable.class.getMod…

会話スコープとAjax

Converasationオブジェクトによる手動スコープ制御を実現する会話スコープ(@ConversationScoped)。 タブブラウザにも対処できる優れものなんですが、制約があります。それは、URLに特定のクエリパラメータを含めないと会話スコープが有効にならないという…

JSFを拡張子htmlで動くようにする

これまでJSFの動作対象URLを「拡張子xhtml」にしていたのですが「html」で動くようにしたい。 ついでに、xhtmlへの直接アクセスを禁止したい。というわけでちょっと手を加えました。 web.xml FacesServletが動作対象とするservlet-mappingを書き換えます。旧…

JSFのAjaxで外のh:formを再描画する

JSFのf:ajaxで、f:ajaxが囲まれているh:formを再描画するときは <f:ajax render="@form"/> のように書けます。 のように書けます。もちろん、h:formのidを書いても構わないけど、こっちの方が変更に強いです。さてf:ajaxを囲んでいないh:formを再描画するときは? このときは <f:ajax render=":form1"/> のよう</f:ajax></f:ajax>…

Servlet3.0で追加されたファイルアップロードを使う

Servlet3.0から、HttpServletRequest#getParts()というメソッドが追加され、ついにJavaEE標準でファイルアップロードが使えるようになりました。JSFと連携する方法を調査したので、過程と結論をメモしておきます。 @MultipartConfigアノテーションの付いたSe…

JSFのAjaxでValidationが動かない

と思ったらh:messageタグのid値をf:ajaxのrenderに書き忘れてただけでした。 つまりValidationされてたけど結果が描画されてないだけ。Wicketでもこのミスをよくやるんだよな・・・

ui:repeatの中のf:ajax

自分メモ。ui:repeatの中でf:ajaxを使う場合、renderの指定の仕方に注意が必要です。例えばui:repeatでボタンを配置し、自身を含む親タグ全体を再描画したい場合、 <f:ajax render=":f:list" /> のように根元からのパスを指定しないといけないようです。 頭の : を忘れるんですよね。。</f:ajax>…

CDIで管理されるオブジェクトを得る

CDI管理のオブジェクトを得るには以下のようにします。 @Inject private BeanManager beanManager; @SuppressWarnings("unchecked") private <T> T getBean(final Class<T> pType) { final Set<Bean<?>> beans = this.beanManager.getBeans(pType); final Bean bean = this</bean<?></t></t>…

CDIのAOPはAOPプロキシ

当分の間、ビール1杯につき50円貯金することにしました。せこいですが、義援金にしようと。さてCDIではまった点について。 CDIのAOPは「AOPプロキシ」という技術で実現されているようです。 「AOPプロキシ」とは 大雑把に言うと オリジナルを継承していて…

JAX-RSでEJBを使う

タイトル通りだけど、はまったのでメモ。 こちらのサイトを参考に解決。 http://www.coppermine.jp/hasunuma/weblog/2010/05/jax-rsejbinject.htmlなぜこうしないといけないかは分かっていないので勉強が必要です。

JSFでエラーのある項目の背景色を変える

さて今回はJSFで「エラーのある項目の背景色を変える」をやってみます。 Strutsにある機能だし、これくらい簡単にできるだろう、と思ってたら・・・けっこうめんどくさいことになっています。 基本的なアイデア 標準で提供されているh:inputTextを使って試し…

JSFでのメッセージにpropertiesファイルを使う

JSFでメッセージをpropertiesファイルに書く方法を調べてみました。具体的には、以下を行う方法の調査です。 メッセージをpropertiesファイルに書く メッセージにはプレースホルダを含める そのメッセージからFacesMessageを作る(もちろんプレースホルダを…

ConversationScopedを使ってみる

EntityManagerで困っているのはちょっと置いておいて、ConversationScoped(会話スコープ)を使ってみます。 ポイントはConversationインターフェイスを持たせるクラス @ConversationScopedアノテーションはConversationインターフェイスと共に使う、という…

JavaEE6ではまったことをいくつか

組み込みGlassfish3.0.1でJavaEE6を試していてはまったところをいくつかメモしておきます。 JSFのXHTMLからは@Namedアノテーションが付いたBeansにしかアクセス出来ない JSFのXHTMLの中からアクセスするBeansには@Namedアノテーションが必須らしいです。 と…

mutalbeなSetの+は新しいインスタンスを作る

遅ればせながらScalaの勉強を始めました。教科書はコップ本。Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー: インプレス発売日: 2009…

JSF2.0+JPA2.0+eclipse 構築編:JPAでの例外の解消(その4)

引き続き例外の調査です。前回Glassfishのサーバを立ててデプロイしてみて、persistence.xmlのtransaction-typeをRESOURCE_LOCALにしているために起動に失敗している、ということが分かりました。今回はここをJTAに変えて動作させてみます。 データソースの…

JSF2.0+JPA2.0+eclipse 構築編:JPAでの例外の解消(その5)

さて前回、GlassfishサーバでJPAを動作させることに成功しました。 persistence.xmlのtransaction-typeをJTAにすればいいようです。 今回は組み込みGlassfishでこれをやってみます。 データソースの追加 組み込みGlassfishでデータソースを追加するにはどう…

JSF2.0+JPA2.0+eclipse 構築編:JPAでの例外の解消(その3)

相変わらず例外の原因が分からず苦しんでいます。前回、persistence.xmlに誤りがないことを確認しました。今回は組み込みではなく、サーバ形式のGlassfishにWARをデプロイしても同じ現象が起きるかどうかを見てみたいと思います。 Glassfish 3.0.1 のインス…

JSF2.0+JPA2.0+eclipse 構築編:JPAでの例外の解消(その2)

前々回から苦しんでいる例外の原因、さっぱり分かりません。ちょっと目先を変えて、persistence.xmlの書き方がまちがってないことを確認しておきます。 テスト用mainメソッドの作成 EmployeeServiceにmainメソッドを作ってgetAllメソッドを呼び出してみまし…

JSF2.0+JPA2.0+eclipse 構築編:JPAでの例外の解消(その1)

JPAを使おうとしたら例外が出たので原因を調査して解消を目指します。 なんで素直に動作してくれないんだろ?例外スタックトレースの肝(と思われる)は以下。 java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null…

JSF2.0+JPA2.0+eclipse 構築編:JPAを動かす

前回までのプロジェクト構成にミスがありました。 src/java/test下のパッケージが「sandbo.***」になっていました。 正しくは「sandbox.***」です。さてJPAに入りましょう。persistence.xmlを書かないといけません。なんかトラブる予感がするなぁ。 DBの選定…

JSF2.0+JPA2.0+eclipse 構築編:やり方を見直す

前のエントリで glassfish-embeddedの起動が遅い web.xmlを書くのがめんどい とぼやいていたらid:shinさんにコメントで耳寄り情報をいただいたので早速試してみました。 glassfish-embeddedは再起動せずに再デプロイするようにする 今まではクラスに変更入れ…

JSF2.0+JPA2.0+eclipse 構築編:JSFに触れる

JSFがちゃんと動いているかどうかを検証するために、ちょっとした動的ページを作ってみます。 拡張子の変更 前回までの設定でJSFのページには拡張子「.jsf」でアクセス出来るようにしていました。でもこれではサーバ側の実装がJSFというのがバレバレです。こ…