技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

Java

jconsoleでリモートのTomcatを監視する

毎度忘れるのでメモしておく。 事前準備としてTomcat起動のjavaオプションに以下を追加しておく。 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7900 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.aut…

Macで古いバージョンのJavaをアンインストールする

インストールされているJavaのバージョンを確認する $ /usr/libexec/java_home -V Matching Java Virtual Machines (2): 1.8.0_40, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home 1.8.0_05, x86_64: "Java SE 8" /L…

簡単なオブジェクトのディープコピー

オブジェクトを楽にディープコピーするコード。 性能面の問題やSerializableなメンバーじゃないとコピーされないとか問題があるけどメモ。 private <T> T deepCopy(final T target) { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final Ob</t>…

TomcatのmaxPostSize

TomcatはデフォルトでPostサイズが2MBを超えるとエラーになる。 デフォルト値を変更するにはserver.xmlにmaxPostSizeを指定する。 The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit ca…

TomcatのmaxParameterCount

POSTしているはずの項目がサーバ側で取得できない事象が発生。 大量にPOSTした場合だけに発生するので単純なアプリのバグではない。 Tomcatのログ(catalina.out)にログが吐かれていた。 INFO: More than the maximum number of request parameters (GET pl…

MyBatisでnull項目の取得ではまった

今日Mybatisではまったこと。 以下のような値がnullの項目を含むレコードをselect。resultTypeにはMapを指定。 iduser_namemail_address 4 山田 太郎 (null) 取得結果をダンプしてみると、mail_address列はMapのキーが作られていない! [{id=4, user_name=山…

SuppressWarningsのオプション

SuppressWarningsに指定できる文字列をど忘れしたときのTips。 javacコマンドに-Xオプションを渡してオプションの一覧を表示、-Xlintのところに書いているものが指定できる。 C:\Users\Eiichi>javac -X -Xlint 推奨の警告を有効にする -Xlint:{all,cast,depr…

java.util.loggingパッケージ

Java1.4からあったらしいが、仕事ではlog4jばかりなので使う機会がなかった。 import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.SimpleForm…

try-with-resources

Java7から追加されたtry-with-resourcesを試してみる。 java.lang.AutoCloseableを実装したクラスなら何でも良いのだが、 close()が呼ばれたことを分かりやすくするため自作クラスを作成する。 public class AutoCloseableStub implements AutoCloseable { @…