<< 2008/09/01 | Home | 2008/09/03 >>
PR: 転職    ドメイン    電子機器    インプラント    転職サイト    ダイエット 食事    転職    コンタクトレンズ    流行キーワード    英会話   

PebbleをJava6で使う。

PebbleをJava6で起動しようとすると、こんなエラーが出る。

17:27:34,510 INFO  [STDOUT] 2008-09-02 17:27:34,508 [main] ERROR org.springframework.web.context.ContextLoader  - Context initialization failed
java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.parsers.DocumentBuilder.setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, org/springframework/beans/factory/xml/XmlBeanDefinitionReader, and the class loader (instance of ) for resolved class, javax/xml/parsers/DocumentBuilder, have different Class objects for the type org/xml/sax/ErrorHandler used in the signature

org.xml.saxlErrorHandlerが、Java6で標準に入っているのに、アプリケーションのクラスパスにも入ってますよ、ってことみたいだ。Pebbleのwarの中のWEB-INF/libの中を調べてみたら、tidy.jarというファイルの中に発見。org/w3c/dom/*と、org/xml/sax/*を削除。というか、org/w3c/tidy/Parser.classとか、何なんだよ、このパッケージ名は。

気を取り直して、再起動。全く同じエラーが出る。おかしいな。と思ったら、xmlrpc-1.2-b1.jarにも入ってる! こちらも削除して、ようやく立ち上がるようになった。

家のサーバにJBoss 5 CR1を入れてみた。

とりあえず、今入ってるTomcatとポートをずらして入れた。Tracとかも動かしたいんで、今度はApache経由に(これまではTomcatをポート80で開いて、直で使っていた)。さすがにFedora Core 1用のApache 2.2パッケージは見つからなかったんで、自分でコンパイル。

ダウンクロックしたAthlon(1GHz)だと、JBoss起動に3分半かかった。普段使ってるCore 2(3.7GHz)だと20秒だから、7倍近くパフォーマンスが違うのか。さて、これから中身の入れ替え。Pebbleも最新にしよう。

localhost:8080だと見えるのに、自分のip address:8080だと見えない。別のマシンからhttp://ip address:8080/でも見えなくて悩む。ずっとiptablesを眺めていたけど、JBossの起動時にrun.sh -b 0.0.0.0と指定することで解決。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8