昨日のつづき。修正箇所はそこまで多くなかったので、自前で修正してjarを作ることにした。
DbUnitが依存するApache POIを最新の3.8にしてNoSuchMethodErrorを回避する方法。
org.dbunit.dataset.excel.XlsTable
org.apache.poi.ss.usermodel.DateUtilをimportして、153行目あたりの
if (HSSFDateUtil.isCellDateFormatted(cell))
を、
if (DateUtil.isCellDateFormatted(cell))
に直す。
org.dbunit.dataset.excel.XlsDataSetWriter
101行目あたりの
cell.setCellValue(new HSSFRichTextString(column.getColumnName()));
を
cell.setCellValue(column.getColumnName());
に直す。
DbUnitはMavenプロジェクトなので、pom.xml中のpoiの依存バージョンを3.2-FINALから3.8に修正して、mvnでビルドすればOK(なぜかojdbc14-10.2.0.4.0.jarだけダウンロードできなかった。Oracleは使う予定がないし、別途ダウンロードしてローカルリポジトリに放り込んで回避)
これで、mvnのテストも全てpassして、今までのDbUnitを使ったDaoのテストも通るようになった。2つ目の修正は正しいかどうか微妙なところなんだけど…。