daybreaksnow's diary

私を私と呼びたい

Java

[Hibernate]特定のバージョンでone-to-manyタグにproperty-ref属性を指定できない

参考URL Hibernate Mapping problem with unrelated collection - Stack Overflow [HHH-2862] Collection is not associated with any session exception when doing an eager fetch on a non-unique collection. - Hibernate JIRA 問題となるHibernateのバ…

[Java]JavaプログラムをWindowsでサービスとして起動する

Java Service Wrapperを使って、前回作成したjarをWindowsサービスにして実行する。 (コンソール出力を行うだけのプログラムなのでサービスにする意味は全くないが。)以下のページを参考にした http://wrapper.tanukisoftware.com/doc/japanese/qna-service.…

[Java]Eclipseで実行可能JARファイルでエクスポートした時のディレクトリ構成の違い

エクスポートするプロジェクトのディレクトリ構成 SpringSample src spring sample SpringSample.java conf spring-conf.xml lib spring.jar commons-logging.jar 1.生成されるJARに必須ライブラリーを抽出 SpringSample.jar META-INF MANIFEST.MF LICENSE(c…

[Java]zipファイルの解凍ではまる(ファイル末尾にヌル文字が1バイトできる)

Javaからzipファイルを解凍したい。 java.util.zipパッケージのクラスを使うと、文字コードがUTF-8固定で、Windows環境で圧縮された日本語ファイルの解凍時に文字化けが発生する。 そのため、apache-antに入っているorg.apache.tools.zipパッケージのクラス…

Javaメモリ使用量調査(Windows)

前回Linuxでやったのと同じようなことをWindowsでもやったのでメモ。 Linux版→Javaメモリリーク調査ログ(Linux) - daybreaksnow's diary非効率な検索処理があり、将来的にデータが増えたときにOOMEが発生しないか調べる必要があった。 そのため、Eclipse上で…

Javaメモリリーク調査ログ(Linux)

方針としては、以下の2点を調査する。 # 起動直後、取込後、再取込後のヒープ使用量を取得し、どのオブジェクトが増えている(残り続けている)のか調べる # GCのログを取り、メモリリークがないか調べるヒープダンプ調査手順 # linux-x64用のJDKをダウンロー…

[GWT]Seleniumで非同期処理のテストを行う

GWT(gwt-dev)とSelenium(selenium-server)を同じビルドパスに入れると、内部jarでバージョンの競合が起きた(リンク)ので、別プロジェクトでSeleniumを動かすことにした。 ソースコードの準備 参考URL:http://stackoverflow.com/questions/5445034/gwt-id-el…

[GWT]Seleniumを同一プロジェクトで動かそうとして諦めた調査ログ

結論としては諦めてGWTとSeleniumを別プロジェクトにしてテストを書いた。 →GWTでSeleniumを動かす GWT(2.4)のプロジェクトに最新のSelenium(selenium-java-2.35.0.jar、selenium-server-standalone-2.35.0.jar)のビルドパスを通し、FireFoxDriverをnewした…

[GWT]RPCの自動テスト

公式:http://www.gwtproject.org/doc/latest/tutorial/JUnit.html 日本語訳を行っているブログ:http://mole-kingdom.com/wpbl/category/%E7%BF%BB%E8%A8%B3/page/15 シンプルなテスト testパッケージにクラスを作って、GWTTestCaseを継承してgetModuleName…

[GWT]環境構築とサンプル

1.Eclispeのダウンロード GWTプラグインが3.7までしかサポートしていないので、3.7.2を落とした。 http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/index.php#EclipseSDKついでにEGitプラグインもインストール。 なお、デフォルト…

[JUnit4]Ruleアノテーションを使って共通する処理をまとめる

複数のテストケースで共通の初期化処理があるとき、以下のようにリソースクラスを作って、各テストクラスでセットアップメソッドを呼んでいた・共通するリソースクラス public class DatabaseConnectionResource{ private SessionFactory sessionFactory; pu…

[Java]Apache POI でパスワードがかかったExcelを読み込んだ際に発生する例外

Apache POI 3.6-20091214 パスワードがかかっているExcelファイルを読み込んだ際に発生する例外 拡張子 読込パスワード 書込パスワード 例外クラス xls 有 有 RecordFormatException xls 有 無 EncryptedDocumentException xls 無 有 例外は発生せず読み込み…

[Java]インスタンスの遅延初期化時の注意

シングルトンインスタンスを遅延初期化するときに以下のようなコードを書くと、Javaでは意図しない動作(複数回newされる)を引き起こすことがある。 参考:http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html public class Hoge{ priva…

[Spring Framework]SpringFramework DIサンプル

環境設定 spring-framework-2.0.8.zipを以下からダウンロード。*1 http://sourceforge.jp/projects/sfnet_springframework/releases/ 以下をビルドパスに通すだけでよい。 ・spring.jar(ダウンロードしてきたzipの中のもの) ・commons-logging.jar*2 サンプ…

[Java]Eclipse Memory Analyzerによるメモリリーク調査

極端にメモリが少ない環境で大きいファイルを読み込んでパースしなければならない状況があり、易々とOutOfMemoryErrorが発生したので、その原因調査にEclipse Memory Analyzerを利用した。http://www.eclipse.org/mat/ バージョンは1.2.1をダウンロードした…

[Java7]正規表現のグループに名前を付ける

Java6以前では正規表現にヒットした文字列をするために、Matcher.group(int)で何番目のグループかを指定しなければならなかった。順番指定だと、新たにグループを付け足した際にすべて修正が必要であり、正規表現の黒魔術度を上げていた。Java7では、"(?正規…

[Java]EXCEPTION_ACCESS_VIOLATIONが発生した場合の対応

Eclipse上でデバッガを使いステップ実行していたところ、アプリケーションが突然落ち、EXCEPTION_ACCESS_VIOLATIONが発生したのでログファイルを見ろと言われた。 指定されたログ(hs_err_pid4704.log)の内容は以下の通り。 ログの内容の抜粋 # # A fatal err…