JavaEE
プロジェクトのプロパティを開く Project FacetsでJPAにチェックを付けてプロジェクトにJAPサポートを追加 プロジェクトのプロパティをいったん閉じる(重要!これをしないとJAPの設定項目が現れない) プロジェクトのプロパティを再び開く Java Persistence…
JavaEE6でJAX-RSを使う手順のメモ。 JAX-RSで処理するパスのルートを設定 具体的にはjavax.ws.rs.core.Applicationクラスを継承したクラスを作りjavax.ws.rs.ApplicationPathアノテーションを付けます。 以下サンプル。 /** * */ package sandbox.resource; …
久々のエントリです。過去のエントリで あと、セキュリティ面からアップロードファイルのサイズ制限などの設定は必須ですが、アノテーションでしか指定出来ないのは困ります。今回調査したJSFのように、既存フレームワークとの連携が非常にやりにくくなりま…
若干はまったのでメモ。あるBeanの会話スコープを終わらせるにはConversation#end()を呼ぶわけですが、このメソッドを呼んだからと言ってプロパティが初期化されたりはしません。当たり前と言えば当たり前ですが。このことが若干問題になることがあります。 …
Converasationオブジェクトによる手動スコープ制御を実現する会話スコープ(@ConversationScoped)。 タブブラウザにも対処できる優れものなんですが、制約があります。それは、URLに特定のクエリパラメータを含めないと会話スコープが有効にならないという…
これまでJSFの動作対象URLを「拡張子xhtml」にしていたのですが「html」で動くようにしたい。 ついでに、xhtmlへの直接アクセスを禁止したい。というわけでちょっと手を加えました。 web.xml FacesServletが動作対象とするservlet-mappingを書き換えます。旧…
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から、HttpServletRequest#getParts()というメソッドが追加され、ついにJavaEE標準でファイルアップロードが使えるようになりました。JSFと連携する方法を調査したので、過程と結論をメモしておきます。 @MultipartConfigアノテーションの付いたSe…
と思ったらh:messageタグのid値をf:ajaxのrenderに書き忘れてただけでした。 つまりValidationされてたけど結果が描画されてないだけ。Wicketでもこのミスをよくやるんだよな・・・
自分メモ。ui:repeatの中でf:ajaxを使う場合、renderの指定の仕方に注意が必要です。例えばui:repeatでボタンを配置し、自身を含む親タグ全体を再描画したい場合、 <f:ajax render=":f:list" /> のように根元からのパスを指定しないといけないようです。 頭の : を忘れるんですよね。。</f:ajax>…
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>…
当分の間、ビール1杯につき50円貯金することにしました。せこいですが、義援金にしようと。さてCDIではまった点について。 CDIのAOPは「AOPプロキシ」という技術で実現されているようです。 「AOPプロキシ」とは 大雑把に言うと オリジナルを継承していて…
タイトル通りだけど、はまったのでメモ。 こちらのサイトを参考に解決。 http://www.coppermine.jp/hasunuma/weblog/2010/05/jax-rsejbinject.htmlなぜこうしないといけないかは分かっていないので勉強が必要です。
さて今回はJSFで「エラーのある項目の背景色を変える」をやってみます。 Strutsにある機能だし、これくらい簡単にできるだろう、と思ってたら・・・けっこうめんどくさいことになっています。 基本的なアイデア 標準で提供されているh:inputTextを使って試し…
JSFでメッセージをpropertiesファイルに書く方法を調べてみました。具体的には、以下を行う方法の調査です。 メッセージをpropertiesファイルに書く メッセージにはプレースホルダを含める そのメッセージからFacesMessageを作る(もちろんプレースホルダを…
EntityManagerで困っているのはちょっと置いておいて、ConversationScoped(会話スコープ)を使ってみます。 ポイントはConversationインターフェイスを持たせるクラス @ConversationScopedアノテーションはConversationインターフェイスと共に使う、という…
組み込みGlassfish3.0.1でJavaEE6を試していてはまったところをいくつかメモしておきます。 JSFのXHTMLからは@Namedアノテーションが付いたBeansにしかアクセス出来ない JSFのXHTMLの中からアクセスするBeansには@Namedアノテーションが必須らしいです。 と…
引き続き例外の調査です。前回Glassfishのサーバを立ててデプロイしてみて、persistence.xmlのtransaction-typeをRESOURCE_LOCALにしているために起動に失敗している、ということが分かりました。今回はここをJTAに変えて動作させてみます。 データソースの…
さて前回、GlassfishサーバでJPAを動作させることに成功しました。 persistence.xmlのtransaction-typeをJTAにすればいいようです。 今回は組み込みGlassfishでこれをやってみます。 データソースの追加 組み込みGlassfishでデータソースを追加するにはどう…
相変わらず例外の原因が分からず苦しんでいます。前回、persistence.xmlに誤りがないことを確認しました。今回は組み込みではなく、サーバ形式のGlassfishにWARをデプロイしても同じ現象が起きるかどうかを見てみたいと思います。 Glassfish 3.0.1 のインス…
前々回から苦しんでいる例外の原因、さっぱり分かりません。ちょっと目先を変えて、persistence.xmlの書き方がまちがってないことを確認しておきます。 テスト用mainメソッドの作成 EmployeeServiceにmainメソッドを作ってgetAllメソッドを呼び出してみまし…
JPAを使おうとしたら例外が出たので原因を調査して解消を目指します。 なんで素直に動作してくれないんだろ?例外スタックトレースの肝(と思われる)は以下。 java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null…
前回までのプロジェクト構成にミスがありました。 src/java/test下のパッケージが「sandbo.***」になっていました。 正しくは「sandbox.***」です。さてJPAに入りましょう。persistence.xmlを書かないといけません。なんかトラブる予感がするなぁ。 DBの選定…
前のエントリで glassfish-embeddedの起動が遅い web.xmlを書くのがめんどい とぼやいていたらid:shinさんにコメントで耳寄り情報をいただいたので早速試してみました。 glassfish-embeddedは再起動せずに再デプロイするようにする 今まではクラスに変更入れ…
JSFがちゃんと動いているかどうかを検証するために、ちょっとした動的ページを作ってみます。 拡張子の変更 前回までの設定でJSFのページには拡張子「.jsf」でアクセス出来るようにしていました。でもこれではサーバ側の実装がJSFというのがバレバレです。こ…
前のエントリでBootクラスの作りを見直し、更にweb.xmlをなくすという暴挙(?)に出たので、ここでいったんプロジェクトの中身を確認しておきます。 ファイル構成 現在のファイル構成です。 web.xmlを削除してServletRegistererを追加しています。 ファイル…
プロジェクトを作ったところで、次は何をするか・・・選択肢としては JPAのエンティティを作る glassfish-embeddedを動かす と2つくらいでしょうか。まだ私がJSFを触ったことがないので、そちらにつなげるために、まずはJavaEEコンテナを動かすのを目標にし…
JSF2.0+JPA2.0をeclipseで開発する環境の構築に挑戦してみます。 glassfish-embeddedを利用 プロジェクトで完結した環境を作るためにglassfish-embeddedを利用します。 GlassfishはオープンソースのJavaEEコンテナで、Glassfish3.0.XはJavaEE6の仕様を実装し…
JSF2.0+JPA2.0をeclipseで開発する環境の構築に挑戦してみます。 結果でなく過程をなるべく省略せずにメモしていきます。 ちなみにこの組み合わせで仕事したことはありません。 この組み合わせのメリット JavaEE標準の技術なので特定ベンダにロックオンされ…
まだ途中ですがJSF触ってて思ったことのメモ。 URLの拡張子が「.jsf」なのは、「.do」なのと同じくらいいただけない なので次からは「.xhtml」でアクセスできるようにします。 glassfish-embeddedの起動が遅い JSFに慣れるためにTry&Errorで何度もweb.xmlやM…