JAVA

Apache POI

POI3.10でエクセル編集する際に、元ファイルに数式が設定されている場合、 setValueメソッドで値が設定できない問題。setFormulaメソッドで空文字(””)を設定してやると、数式解析エラーとなる。setCellTypeメソッドでセルタイプをCELL_TYPE_NUMERICにして…

javaのデッドロックをチェックする

ログを見たところプログラムの処理が停止している。 しかしDB側でデッドロックは発生していないという状況で、プログラム側でデッドロックが発生していないか確認。1.プロセスIDを確認(jps自体のIDも表示される) jps2.スタックを出力 jstack ID出力の下のほ…

Antビルドスクリプト

ビルドしてjarを作るだけです。 <project name="DaoTraining" default="makeJar"> <property name="env.workspace" value="./build"/> <property name="env.compile" value="./build/bin"/> <property name="env.src" value="./src"/> <property name="env.lib" value="./lib"/> </property></property></property></property></project>

mockito(2) 呼び出し回数チェック+例外処理チェック

mockito(1) スタブ的に使う - 基礎からのjavaの続き。 verifyメソッドで呼び出し回数のチェック。 例外を発生させ、キャッチした例外が想定通りかチェック。 (@Test(expected=XXX.class)では型のチェックしかできないのでキャッチしています)あわせてテス…

tomcat7 + struts2でwebアプリ(12) Ajax(1)

ボタンを押して時刻を取得するサンプル。 初回アクセスで時刻を表示して、ボタン押下時にjsonから取得したデータで時刻を更新する。 jsonの生成には、struts2のjsonプラグインを使用。アクションをそのまま利用してjson作成できるのが便利。(とりあえず時刻…

mockito(1) スタブ的に使う

DAO依存のクラステストが面倒 テスト対象のクラスAがDAOクラスBに依存しているような場合、テストデータをDBにあらかじめ登録する必要がある。 dbunitのようなファイルからレコードを読み込むフレームワークはあるが、DAOではないクラスAのテストのためにレ…

dbunitのエラー

データベース処理テスト用のdbunitですが、エクセルからの読み込みがうまくいかずハマる。 ハマりポイントは以下の4つ。 データの間に空白があるとダメ 以下のように、空白のセルがあると「NullPointerException」となる。 no name age 1 tarou 20 2 (空) 2…

tomcat7 + struts2 でwebアプリ(11) メモ

アクション呼び出し前のFilterDispatcherあたりでNullPointerException アクション呼び出し前の事前処理でNullPointerExceptionが発生し、 アクションのexecuteメソッドが呼び出されない問題。基本的な設定やファイル名について確認しても解決しなかったので…

tomcat7 + struts2でwebアプリケーション(10) セッションタイムアウト

web.xmlにを追加する。 パラメーターの単位は[分]。

tomcat7 + struts2でwebアプリケーション(9) インターセプター(1)

独自のインターセプタを作成し、アクションの処理に移る前に処理を横取りする。 独自インターセプタでは、セッションに情報を入れて結果画面に遷移する。(1)struts.xmlでインターセプタを定義。 interceptor-stack内でmyInterceptorを後に定義。逆の順番では…

tomcat7 + struts2でwebアプリケーション(8) セッション(1)

SessionMapを使ってセッションを扱う。

tomcat7 + struts2でwebアプリケーション(7) validate(2)

xmlでバリデーション設定をする。 アクションクラスにはvalidateメソッドは実装しない。(1)struts.xmlには必須。 <struts> </struts>

tomcat7 + struts2でwebアプリケーション(6) validate(1)

サーバーサイドでバリデーション。 具体的にはアクションクラスにvalidateメソッドを実装する。(1)バリデートした結果、問題があれば"input"が返ってくるため、 struts.xmlに記述を追加。(遷移先は入力画面)

tomcat7 + struts2でwebアプリケーション(5) フォームとアクション(2)

アクションクラスのオブジェクトが持つメンバに値を渡す。(1)アクションクラスにアクセサを追加 import com.opensymphony.xwork2.ActionSupport; public class TestAction extends ActionSupport { private InputModel model = new InputModel(); @Override …

tomcat7 + struts2でwebアプリケーション(4) iterator

リスト構造のデータをまわして取得する。 ついでにifタグも使ってみる。(1)リストに挿入するInputModelオブジェクトにメンバ追加 import java.io.Serializable; public class InputModel implements Serializable{ private String username; private String …

tomcat7 + struts2でwebアプリケーション(3) ModelDriven

フォームから受け取ったパラメータのアクセサをModelDrivenで分離する。 アクション内にはmodelのアクセサだけでよくなる。(1)パラメータを保持するクラスを作成する(InputModel.java) import java.io.Serializable; public class InputModel implements Ser…

tomcat7 + struts2でwebアプリ(2) フォームとアクション

テキスト入力フィールドに入力された文字を送信すると、 結果画面で入力された文字を表示するサンプル。 (1)struts.xmlにアクション定義を追加。 <struts> </struts>

tomcat7 + struts2でwebアプリ(1) とりあえず動かす

仕事で触るtomcatはtomcat7が多いので、tomcat7でいろいろやってみる。 内容的には公式チュートリアルを見るのが間違いないと思います。 (1)動的webプロジェクト作成 「web.xmlデプロイメント記述子の生成」にチェック (2)WebContent/WEB-INF/libに以下のフ…

CentOS7+tomcatでJFreeChartが使えない

Catalina.sh内で、オプションを追加する。 -Djava.awt.headless=true

javacvで顔検出+画像合成

やってみた。 package jp.ne.hatena.d.matasaburou; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import com.googlecode.javacv.CanvasFrame; impor…

学習日程(データ構造とアルゴリズム)

10/28-11/4 スタック キュー リスト 解説(11/4 14:00-16:00) 11/5-11/10 二分木 解説(11/10 14:00-16:00) 11/11-11/17 セット 解説(11/17 14:00-16:00) 11/18-11/24 ソート 解説(11/24 14:00-16:00) 11/25-11/30 探索 解説(11/30 14:00-16:00) 12/1-12/14 グ…

二分探索木(java版)

コードにバグが存在していました。 後日、修正したプログラムで再測定を行います。 申し訳ございませんでした。以下の記述は多くが誤りとなりますので、ご理解のうえご覧ください。 まことに勝手ながら、諸事情により二分木についての解説を11/29に変更させ…

学習日程(データ構造とアルゴリズム)

10/28-11/4 スタック キュー リスト 解説(11/4 14:00-16:00) 11/5-11/10 二分木 解説(11/10 14:00-16:00) 11/11-11/17 セット 解説(11/17 14:00-16:00) 11/18-11/24 ソート 解説(11/24 14:00-16:00) 11/25-11/30 探索 解説(11/30 14:00-16:00) 12/1-12/14 グ…

OCJP合格

感想 Oracle認定 Javaプログラマ SE6に合格しました。正答率は85%でした。 1年以上Javaをやってきた結果が形として出たのかなと前向きにとらえています。試験の難易度は黒本の問題と同じくらいだと感じました。 問題はランダムに選択されるため、運が良かっ…

OCJP 受験日7/19

7/19(金)にOracle認定 Javaプログラマ SE6を受験します。 この週末に黒本問題集の模擬問題を1回。 その後は、型変換、スレッド、コレクションの問題をやって理解を深めます。 Java How to Program 並行して、Java How To Programも読み進めていきます。 inte…

資格試験

学習内容 Aizu Online Judge 0033 Ball AP午前問題 どの資格試験を受けるか? 4/15の試験には申し込みをしていないので、これから行われる試験を受ける。 10/21の情報処理技術者試験では高度試験を受験する。 ITストラテジスト、ネットワークスペシャリスト…

1週間ぶり

Aizu Online Judge 0031 Weight 0032 Plastic Board JAVA言語で学ぶデザインパターン

デザインパターンの理解のコツ

JAVA言語で学ぶデザインパターン入門 デザインパターンの理解のコツ 変更が影響する部分を少なくする、切り離す 間接層をいれることで利用側からクラスの詳細を知らなくていいようにする クラスの責任を分割し、明確にする 複雑さを軽減する

for文からwhile文

学習内容 Aizu Online Judge 0030 Sum of Integers for文からwhile文への書き換え 最初にfor文の初期化をwhile文の前に行う。 for文の条件式をwhile文の条件式とする。 最後にfor文の後処理をwhile文ブロックの最後に記述する。 深くネストしたfor文の場合、…

ほそぼそ

Aizu Online Judge 0029 English Sentence