だいこんの日々2

軸足をtwitterとfacebookに移しつつも、技術的な話はここに書いていきます。

java.util.zip.ZipException: No such file or directory

社内のシステムで使っているアプリケーションサーバをアップデートすることにした。

まず、J2SDKを1.4.0から1.4.2へ。と思ったら更新に必要なパッケージがないので、全体的にアップグレードする羽目に。
libcの更新にドキドキしながら、J2SDKを更新完了。動作に問題は無いようだ。

次にTomcatを4.0.3から4.1.31へ。細かいトラブルはあったが何とか対処。

そして、PostgreSQLを7.2.1から7.4.7に。すると問題多発。いや、本当は更新するつもりなかったんだけど(笑)

JDBCのドライバも更新したのだけれど、該当するアプリケーションで、

java.util.zip.ZipException: No such file or directory
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:111)
        at java.util.jar.JarFile.<init>(JarFile.java:127)
        at java.util.jar.JarFile.<init>(JarFile.java:65)
        at org.apache.catalina.loader.StandardClassLoader.addRepositoryInternal(StandardClassLoader.java:1035)
        at org.apache.catalina.loader.StandardClassLoader.<init>(StandardClassLoader.java:153)
        at org.apache.catalina.startup.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:155)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:93)

というエラーが出て、Tomcat自体が起動しない。そういえば、以前も同じエラーに出くわした覚えが。必死に思い出す。

すると、記憶の欠片が戻ってきた。Tomcatは起動時にlibディレクトリにおいてあるjarファイルをすべて読み込むのだけれど、シンボリックリンクのリンク先が無いと上記のエラーを吐き出すのだ。

該当するファイルを一生懸命探す。/var/lib/tomcat4/shared/lib、/usr/share/tomcat4/lib、/usr/share/tomcat4/common/libなどなど。古いJDBCのjarにリンクしているファイルを2つほど修正したら復活。ふぅ。

これでサーバのアップデート完了。
…のはずだったのだが。続く。