JBoss

Arquillianで結合テストをしてみる

単体テスト(JUnit)では起きない(=パスする)けど、システムテストで見つけるのでは遅すぎる、そんな類のバグを結合テストで検出したい。ってことで、Arquillianを使うことにした。毎回ちまちまとやってる同じような回帰テストを継続的に自動実行できるよ…

The transaction is not active!

Transaction is not active: javax.transaction.RollbackException: The transaction is not active! というエラーと奮闘した話(JBoss AS5.1.0GA/Seam2.2/EJB3)メッセージでそのままぐぐればTech Team Lead Newsの記事が見つかるので、トランザクションタ…

pages.xml備忘録

実は、JBoss Tools使わずにSeamアプリケーションを作っていたので、ページ制御は結構いい加減。すでにログイン済みの場合にログイン画面を表示しようとしたら、指定した画面にリダイレクトする、っていう簡単な定義をするのにも四苦八苦…。というわけで、困…

トランザクション属性REQUIRES_NEWの落とし穴

トランザクション属性としてREQUIRES_NEWを指定したセッションBeanのメソッドを、別のセッションBeanから何度も呼ぶと、2回目の呼び出しの時にトランザクションタイムアウトが起こるまで、処理が固まってしまう現象が起きた。簡略化すると、以下のようなセッ…

Windows環境にてRESTEasyを使ってJSONレスポンスを返すとUTF-8にならない件

RESTEasyの話。リソースクラスを実装して、JSONレスポンスを返そうとした時に、アプリケーションがUTF-8でなくShift-JIS形式のJSON文字列を返してしまう現象に出くわした(JBoss 5.1.0GA, Seam 2.2)。なお、JSONエンコーディングにはJSONICを利用。ただし、…

Selenium RCを使ったJBoss Seamアプリケーションの自動テスト

こうすればテストしやすい、といったTipsをまとめる。想定はSelenium RC(Java)。 View(xhtml): JSFタグでは原則id属性をつける 例えば <h:form> ではなく <h:form id="fooForm"> とする。これにより、表示されるページでは、各入力部品のidとして、 j_id123:name のように動的に割り振られ</h:form></h:form>…

JBoss AS7を使い始める

JBoss ASは4.2.0.GA、5.1.0.GAを使ったことがあって、6.xも最新リリースをダウンロードして中を軽く見たみたことがあるけど、この前7.xをダウンロードしてみて、中の構成が大きく変更されていることを知った。server/default/deploy/みたいなものは、別のも…

ログ出力をslf4j+logbackに統一

JBoss ASとSeamを使ったアプリケーションのログ出力形式をslf4j+logbackに一元化したい。要するに、JBossのログ出力(Log4jService)の出力をうまく上書いちゃおうとする時の方法について。アプリが出すログは素直にslf4jを使ってあげればいいのだけど、JBoss …

Embedded JBossとかEmbedded GlassFishとか。

ダウンロード:http://sourceforge.net/projects/jboss/files/Embedded%20JBoss/Embedded%20JBoss%20Beta%203/チュートリアル:http://community.jboss.org/wiki/EmbeddedAndJavaSEただまぁ、スタンドアロンな環境でさくさくっとアプリケーションの開発、テ…

RESTEasyとEJB(2)

以前のエントリにて、「RESTEasyを使ったアプリでセッションBeanがうまくDIできない」件、改めて考えるとできるのでは?という説。まずEJB3上でのDIのルールと、SeamでのDIのルールについて整理。 EJB3のDIの適用範囲はEJB3のみ(ここでいうEJB3というのは、…

RESTEasyとEJB

EJBとの連携も売り文句にしているRESTEasyだけど、どうもまだ完全にうまく組み込めないみたい。まだJBoss初心者なので、設定がうまくできていない可能性も多々あるけど。 DIするために、web.xmlに明示的な設定作業が必要。インタフェースと実装クラスが1:1に…

トランザクションのロールバック

http://otndnld.oracle.co.jp/document/products/wls/docs103/ejb30/program.htmlEJBのビジネスメソッドによってスローされる例外に@ApplicationException(rollback=true)をつけるだけでいいのか。

EJB3.1とJBoss5.1.0GAでClassCastException

JBoss5.1.0GA上で管理されるリモートインタフェースをlookupしようとしたら、エラーになった。 Caused by: java.lang.ClassCastException: javax.naming.Reference cannot be cast to (Beanインタフェース名) 調べるとJBossのバージョン間で互換性がないだと…