ablog

不器用で落着きのない技術者のメモ

Java

Tomcat をインストールしたけど起動しない

Tomcat をインストールして起動して ps で見るとプロセスは起動しているけど、ブラウザでアクセスすると The requested resource (/xxx) is not available.って言われる。 catalina.out を見てみると、 # less /usr/local/tomcat/logs/catalina.out 致命的: …

Linux で jsvc をコンパイルすると java.c:22:17: error: jni.h: No such file or directory

http://www.jajakarta.org/tomcat/tomcat5.0/mix/docs/tomcat-docs/setup.html を参考にして Linux で jsvc をコンパイルしたら、 # cd /usr/local/tomcat/bin # cp -a jsvc.tar.gz /tmp # cd /tmp # tar xvzf jsvc.tar.gz # cd jsvc-src # chmod +x configu…

Mac OS X Snow Leopard で javac のエラーメッセージが文字化けする

Mac OS X 10.4.9のjavacにおいて、初期設定ではjavacのエラーメッセージがShift_JISであるため文字化けする。 javacのエラーメッセージが文字化けする問題(Mac OS X) - 日々精進~バイオデータサイエンティスト 兼 起業家としての日々~ ということなので…

HttpServletRequest#getRemoteAddr で IP アドレスを取得すると IPv6 形式になる

HttpServletRequest#getRemoteAddr で IP アドレスを取得すると 0:0:0:0:0:0:0:1のような IPv6 形式になる場合、 -Djava.net.preferIPv4Stack=trueを Java VM の起動オプションに指定してやれば、IPv4 形式で取得できる。 自分の MacBook で Eclipse から Je…

5分ではじめる Wicket

覚え書き Wicketのサイトに用意されているサンプルアプリケーション「QuickStart」をインストールして起動する。 あらかじめApache Mavenのセットアップが終わっており、mvn コマンドを使用できる必要がある。 Maven が 100% Java の Webサーバ兼 Servlet コ…

ただのめも

[File]-[Import]-[Other]-[SVNからプロジェクトをチェックアウト]-[新規リポジトリー・ロケーションを生成] Url:http:// ... /trunk/projects フォルダの選択: foo-bar プロジェクトとしてワークスペースへチェックアウト プロジェクト名: foo-bar 同じく pa…

Tomcat で war をデプロイすると「パス /foo-bar のコンテキストが存在しません」と怒られる

war をデプロイすると、 ... inner.undeploy: [undeploy] FAIL - パス /foo-bar のコンテキストが存在しません BUILD FAILED /home/foo/bar/build.xml:85: The following error occurred while executing this line: /home/foo/bar/build.xml:77: FAIL - パ…

Mac OS X Snow Leopard に Eclipse をインストールする

インストールする http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-macosx-cocoa.tar.gz から eclipse-jee-galileo-SR2-macosx-cocoa.tar.gz をダウンロードする。 % cd /Users…

MS932(Java) + JA16SJIS(Oracle) でチルダ「〜(0x8160)」が文字化けする理由

Java の MS932 エンコーディング の SJISUnicode 対応表と Oracle Database の JA16SJIS キャラクタセットの SJISUnicode 対応表が異なるため。 例えば、Webアプリにユーザが「〜(0x8160)」を入力すると、Oracle Database に 0x8160 で保存される。 ここまで…

Tomcat のログが文字化けする場合の対処法

Java Web アプリケーションを Tomcat 上で動かしていて、アプリケーション内で日本語メッセージをログに出力している場合、ロケール設定が適切でないと、日本語が文字化けする。対処するには、Tomcat の起動スクリプト内でロケールを指定してやれば良い。 /e…

単一ホストで Tomcat のインスタンスを複数起動する

環境 # uname -a SunOS solaris101 5.10 Generic_137138-09 i86pc i386 i86pc # java -version java version "1.5.0_16" Java(TM) Platform, Standard Edition for Business (build 1.5.0_16-b02) Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed mo…

jconsole で Tomcat を監視する

Tomcat の設定手順 jmxremote.password に ID/PASS を設定する。 # cd $JAVA_HOME/jre/lib/management # cp jmxremote.password.template jmxremote.password # chown tomcat:tomcat jmxremote.password # chmod 600 jmxremote.password # vi jmxremote.pass…

Java アプリケーションのログから発生した Exception の回数を集計する Perl ワンライナー

perl -wnle 'BEGIN{%h=();}/([a-zA-Z]*Exception)/ and $h{$1}++;END{map{print "$_:$h{$_}"} sort keys %h;}' * 実行結果 ... ConversionException:2 Exception:2 FileUploadException:2 IOException:674 IllegalArgumentException:10 IllegalStateExceptio…

Linux x86 に JDK6 をインストールする

OS の CPU のアーキテクチャを調べる。 # cat /proc/cpuinfo |grep flags flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr flags : fpu vme de pse tsc msr pae mc…

致命的: 持続されたセッションの保存中のIOExceptionです ... SESSIONS.ser (Permission denied)

Tomcat を停止しようとしたら停止しない*1ので、catalina.out を見てみると、 /usr/local/tomcat/logs/catalina.out 2010/02/24 10:11:25 org.apache.catalina.core.StandardService stop 情報: サービス Catalina を停止します 2010/02/24 10:11:25 org.apa…

jsvc で Tomcat 起動時に -server オプションをつけると、「Invalid option -server」エラー発生

現象 # /etc/init.d/tomcat start 18/02/2010 22:03:47 32734 jsvc error: Invalid option -server 18/02/2010 22:03:47 32734 jsvc error: Cannot parse command line arguments 対処 server オプションを外す。 # vi /etc/init.d/tomcat #CATALINA_OPTS="-…

Oracle、MySQL、PostgreSQL の JDBC Driver

id:sh2nd さんに教えて頂いたことをメモ。 JDBCバッチ更新するとOracleだけ3倍速くなってしまうのでやらない ;-) SH2 on Twitter: "JDBCバッチ更新するとOracleだけ3倍速くなってしまうのでやらない ;-)" 1)MySQLはrewriteBatchedStatements入れないと動かな…

Tomcat 上のWebアプリケーションが作るディレクトリやファイルのパーミッションを制御する方法

起動スクリプト作成 vim /etc/init.d/tomcat #!/bin/bash # # chkconfig: 35 80 20 # description:Tomcat 6.0.24 # Source function library. . /etc/init.d/functions export JAVA_HOME=/usr/local/jdk1.6.0_18 export CATALINA_HOME=/usr/local/tomcat6.0.…

JDK をインストールしたときに作成されるシンボリックリンク

とりあえずメモっておく。rpm をインストールすると、 /usr/java/latest /usr/java/default は自動的ににできるけど、 /usr/bin/java などは作成されたり、変更されたりしなさそう。 # rpm -qa --queryformat "%{name}-%{version}-%{release}.%{arch}\n" # r…

Seasar Conference 2009 Autumn に行って来た

Java やってないのに、また Seasar Conference に行って来た。 子供のプールの日なので、プールに行ってから会場についたら 16:00。 飲み会のために行ったみたいw Blogopolisの裏側 LT じゃんけん大会 飲み会 に参加した。 ジョジョ好きなのに、id:Yamashiro…

Java でコマンドライン引数のチェックをする

Java で「コマンドライン引数が指定されていれば使う、指定されてなければデフォルト値を使う」ってことをしたいときって一般的にどう書くんだろ?とりあえず、以下のように書いてみた。 public static void main(String[] args) throws Exception { String …

Windows で Eclipse を使ってみる

インストールする Eclipse Downloads | The Eclipse Foundation で Eclipse IDE for Java Developers (92 MB) をクリックする。 緑の下向き矢印(↓)をクリックして eclipse-java-galileo-win32.zip をダウンロードする。 eclipse-java-galileo-win32.zip を…

Apache Ant を使ってみる

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle から jdk-6u15-windows-i586.exe をダウンロードする。 jdk-6u15-windows-i586.exe を実行して JDK をインストールする。 ウイザードに従って全てデフォルトでインスト…

Java の class をデコンパイルしてみた

Home Page of Jad - the fast Java decompiler から Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform (http://web.archive.org/web/20080214075546/http://www.kpdus.com/jad/winnt/jadnt158.zip) をダウンロードする。 Windows XP 版がないけど、たぶ…

Java のスレッドダンプを取得する

9.2.0.4.0以前のOUI(Oracle Universal Installer)はトレースを取得することができないので、スレッドダンプを取得してみた。 $ ./runInstaller > oui.log 2>&1 & # OUI を起動する $ ps -ef | grep java # OUI の PID を調べる ... oracle 24958 1 ... $ k…

カーソルが解放されるタイミング (2)

カーソルが解放されるタイミング - ablog の続き。 Statement、ResultSet を毎回 close しながら無限ループするプログラムと、Statement、ResultSet を close せずに無限ループするプログラムを実行してみて、前者は永久に実行され、後者はカーソルリークで…

カーソルが解放されるタイミング

Java + JDBC Thin Driver + Oracle で、カーソルが解放するタイミングを検証してみた。 Statement と ResultSet を close したら、カーソルが解放されると思ってたら、Connection を close しないとカーソルが解放されなかった。こういうもんなんだっけ?検…

Strutsについて妄想をふくらませてみた

Strutsを使ったことないし、今後使うわけでもないけど、Strutsを使ったWebアプリのソースコードをちょっと見る機会があったので、Strutsについて妄想を膨らませてみた。 まず、J2EEについて Tomcat、WebLogicなどのJ2EEアプリケーションサーバは1プロセス・…

コネクションプーリングを使用している場合、接続を close したときに commit/rollback されるか?

commit/rollback せずに close すると、 AutoCommit=false → commit される AutoCommit=true → 何も行われない(SQL を実行した時点で commit/rollback されるため) あ、Java + JDBC Thin Driver + Oracle の話です。[参考] 自動コミット・モードを使用禁止…

Mac OS X Leopard に eclipse をインストールする

ダウンロードしてインストールする。 $ cd ~/Downloads $ perl -MLWP::Simple -e 'getstore "http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-macosx-carbon.tar.gz", "eclipse-jee-ganymede-S…