skillup

技術ブログ

Java

arquillianでの外部ライブラリ使用

投稿日:2015年8月3日 更新日:

現状、実務ではDBのテストでは基本的にarquillianを使っています。

arquillianとにかく、重いですね~。

まあglassfishを動かしているので仕方ないかもしれませんが、簡単なテストをするのに1分近くかかります。

このブログもarquillianの待ち時間で書いています。そうでないと待ち時間に耐えられないので・・・(汗)

そんなこんなであまり好きではないのですが(汗)、本日ライブラリが動かないというバグが発生しました。

Apache commonsのライブラリが動かないんです。(もちろんApache commonsだけではありません。依存状態にあるライブラリ全般が動きません。)

ライブラリが動かないといっても本来のプログラムの中にライブラリを使っている場合は問題ないんですが、テストコードの中に依存状態があるライブラリを書くとNodefClassDefFoundエラーがでます。

で、結構はまっており、最初はライブラリのスコープが間違っているのかな?と思ったのですが、いろいろやってみても駄目でした。

社長ともいろいろ相談し、結局はarquillianの上で動いている場合、クラスパスが通常の場合と異なっているためでした。(←この解釈間違ってるかも・・・)

ただarquillianのテスト環境でも通常の状態と同様の環境を再現することは可能です。

ライブラリの依存状態を解決する方法として下記のようにpomに記述してあげればOKです。

参考リンク

Arquillian用ArchiveへクラスとMaven Dependencyを楽に追加する

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Javaのコーディングルール

私自身、Javaで仕事をするようになってから3ヶ月ちょっとがたちました。 もともとPHPで仕事はしていましたが、我流でやっていたこともあり、コーディングのルールとかがいい加減だったんですよね・・ ボス …

no image

スコープアノテーションとCDIについて

JavaEEで個人的に鬼門がCDIとスコープだと思っています。 ここが少しずつ分かりかけてきたんでメモします。 まずJavaEEでは変数の生存期間をアノテーションで定義します。 これがなかなか分かりに …

no image

Fileのアップロード

業務でCSVのアップロードを行っていますが、ファイルになりますと当然文字列ではなく、バイナリ形式のデータが必要になります。 アップロード自体の処理を書いていなかったので、その扱い方についてちょっと書い …

no image

String,Integer,Booleanの相互変換

データベースにはbooleanでデータが入っているのに画面では0か1の数字でないと表示ができないときなどがあると思います。 そんな時に文字列と論理値、あるいは文字列と数値、数値と論理値の変換などをする …

no image

CSVの入出力に関して

業務でCSVの入出力と格闘中。 まあよくある頻出の作業だったりするんですが、自前でやるとなかなか面倒です。 面倒なポイントとしては クオートのエスケープ カンマのエスケープ ヘッダーとの結合 ですかね …