[uruma-dev:117] JavaWebStartでのGUIアプリ配布に関して

yazaki [E-MAIL ADDRESS DELETED]
2008年 3月 19日 (水) 18:54:04 JST


小森さん
  矢崎です。

アドバイスありがとうございます!
# 件名がずれてきたので変えておきました。

結論から言うと、urumaプロジェクトのapp.diconを先に読みに行ってしまっていたのが原因でしたが、
次のどちらの方法でも解決可能でした。
1)urumaプロジェクトのapp.diconファイルを消す
2)作成中のプロジェクトのdiconファイルの名称を変更し、mainメソッドで、
 StandAloneUrumaStarterインスタンス生成前に次のメソッドを実行する。
  StandAloneUrumaStarter.setConfigPath("gui_test.dicon");

以下解決までの経緯ですが、長文失礼します。

>  ひとまずの解決策として、Uruma の配布ファイルの中に入ってい
> る swt-win32-win32-x86-3.3.1.1.jar の中から、swt-*.dll をす
> べて取り出し、パスの通ったディレクトリ(たとえば、
> JAVA_HOME/bin あたり)に置いたら動かないでしょうか。
この方法を試した結果、(Unable to load native library: ...)のメッセージが4つから2つに減ったんですが
問題は解決しませんでした。
ちなみ上記2)実施後にコピーしたdllファイルを削除しても正常に動作しました。

せっかくなのでOne-Jarのソースコードを落として眺めていると、こんな感じで
ログレベルが設定できることがわかりました。
  java -Done-jar.info=true -jar URUMA_GUI.jar
# ちなみにinfoのところはinfo, verbose, statisticsが設定可能なようです。
ソースはここにありました。
:pserver:[E-MAIL ADDRESS DELETED]:/cvsroot/one-jar
fatjarはここです。
:pserver:[E-MAIL ADDRESS DELETED]:/cvsroot/fjep

ボタンが反応していないのはわかっていたのですが、
JarClassLoader: Warning: Unable to load native library
が出ていたため、これが原因だと勘違いしてました。
org.seasar.uruma.core.ComponentUtil#setupPartActionで、
partActionComponentがnullだった場合、「""という名前のコンポーネントはS2コンテナに登録されていません」的な
INFOメッセージを出力すると、初心者にもわかりやすくなると思ったのですがいかがでしょうか?
        } else {
//この辺。 100行目あたり
            return null;

>  たしか、WebStart での Uruma 起動は1年ほど前に bskuroneko
> さんが調べてくれていたような気がするのが、そのときはどうだっ
> たでしょうか? たしか、そのときも Fat Jar を使っていたような
> ・・・ > bskuroneko さん
ちなみに過去ログ発見しました。^^)
http://ml.seasar.org/archives/uruma-dev/2006-December/000033.html
証明書関係も厄介ですね。

WebStart環境は今後構築予定ですので、気づいた点があったらまた投稿します。

----- Original Message ----- 
From: "KOMORI Yusuke" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, March 18, 2008 10:44 PM
Subject: [uruma-dev:113] Re: DateTimeコントロールの組み込みに関して


> 矢崎さん
>
>  こんばんは、小森です。
>
>> 現在開発中の社内ソフトは、性格上urumaのスタンドアローンタイプを使用させて頂いています。
>
>  そうですね。
>  RCP 版の方は、いま杉上さんのほうでやってもらっている、
> Cooldeploy対応ができないとAOPが使えないので、現実的にはスタ
> ンドアローン版になると思います。
>
>> JavaWebStartでの配布に関して、質問ですが、よろしいでしょうか?
>> One−Jarという技術(?)を見つけ、実際に実行してみたのですが、次のメッセージが出て、どうもうまくいきません。
>> JarClassLoader: Warning: Unable to load native library:
>> java.lang.NullPointerException
>> これに関しては、もう少し自分で調べてみますが、One−Jar以外にもっとよい方法があるのでしょうか?
>> ご存知の方いらっしゃいましたらアドバイスお願いします。
>
>  WebStart での配布は、Uruma の使い方として想定しているので、
> 問題を解決しておきたいです。
>
>> JarClassLoader: Warning: Unable to load native library:
>
>  これは、JNI で利用する DLL の読み込みに失敗しているようで
> すね。Uruma の場合は、SWT と 内部で Win32API のラップに使っ
> ている nlink のどちらか(あるいは両方)がDLLの読み込みに失敗し
> ているのだと思います。
>
>  ひとまずの解決策として、Uruma の配布ファイルの中に入ってい
> る swt-win32-win32-x86-3.3.1.1.jar の中から、swt-*.dll をす
> べて取り出し、パスの通ったディレクトリ(たとえば、
> JAVA_HOME/bin あたり)に置いたら動かないでしょうか。
> (根本解決ではないのですが・・・)
>
>  ちょっと長くなりますが、仕組みを説明します。
>
>  Java の JNI で利用する DLL はパスの通った場所か
> java.libraly.path システムプロパティで指定された場所になけれ
> ばいけません。SWT 3.3 以前は DLL の場所を java.library.path
> で指定するのがお約束でしたが、最近は指定しなくてもよくなりま
> した。
>  その仕掛けは、SWT が初期化時に自分のjarファイルの中からDLL
> を取り出しテンポラリディレクトリに展開し、それを直接読み込ん
> でいるからです(わかってしまえば単純な仕組み・・・)。
>
>  ただ、WebStart 環境ではセキュリティの関係でローカルディス
> クへのファイル書き込みを禁止しているので、上記の措置が失敗し
> ている可能性があるのです。
>
>  nlink の方も同じ仕組みにしているので、同じ理由でDLLロード
> が失敗してしまう可能性があります。
>
>  たしか、WebStart での Uruma 起動は1年ほど前に bskuroneko
> さんが調べてくれていたような気がするのが、そのときはどうだっ
> たでしょうか? たしか、そのときも Fat Jar を使っていたような
> ・・・ > bskuroneko さん
>
> On Tue, 18 Mar 2008 17:52:03 +0900, "yazaki" <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 小森さん、皆さん
>>  こんにちは、矢崎です。
>>
>> 先ほど、リポジトリを確認しました。
>> 早速の対応ありがとうございます。
>>
>> 現在開発中の社内ソフトは、性格上urumaのスタンドアローンタイプを使用させて頂いています。
>>
>> JavaWebStartでの配布に関して、質問ですが、よろしいでしょうか?
>> One−Jarという技術(?)を見つけ、実際に実行してみたのですが、次のメッセージが出て、どうもうまくいきません。
>> JarClassLoader: Warning: Unable to load native library:
>> java.lang.NullPointerException
>> これに関しては、もう少し自分で調べてみますが、One−Jar以外にもっとよい方法があるのでしょうか?
>> ご存知の方いらっしゃいましたらアドバイスお願いします。
>>
>> 参考にしたサイト)
>> One-JAR
>> http://www.ibm.com/developerworks/jp/java/library/j-onejar/index.html
>> Fat Jar Eclipse Plug-In
>> http://fjep.sourceforge.net/
>>
>> > Date: Mon, 17 Mar 2008 19:53:41 +0900
>> > From: KOMORI Yusuke <[E-MAIL ADDRESS DELETED]>
>> > Subject: [uruma-dev:105] Re: DateTimeコントロールの組み込みに関して
>> > To: [E-MAIL ADDRESS DELETED]
>> > Message-ID: <[E-MAIL ADDRESS DELETED]>
>> > Content-Type: text/plain; charset="ISO-2022-JP"
>> >
>> > 矢崎さん
>> >
>> >  はじめまして、小森です。
>> >
>> >> 社内で使用する小さなシステムに、試験的にurumaを使用させていただいております。
>> >>
>> >
>> >  ありがとうございます!
>> >
>> >> DateTimeコントロールの組み込みに成功しましたので、ソースコードをお送りします。
>> >>
>> >> //SWT自体最近はじめたばかりなので、不足な部分はは多々あるかもしれませんが。。。
>> >>
>> >>
>> >> お役立ていただければ幸いです。
>> >
>> >  とても助かります!
>> >  さっそく組み込ませていただきます。
>> >
>> >  Uruma 利用のうえで、ご質問やご要望などありましたら、ぜひぜ
>> > ひご連絡ください。
>> >
>> >  これからも、よろしくお願いいたします。
>> >
>>
>> _______________________________________________
>> uruma-dev mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/uruma-dev
>
> ----------------------------------------------
> 小森 裕介 / Yusuke Komori
>
>  E-Mail : [E-MAIL ADDRESS DELETED]
>    Blog : http://d.hatena.ne.jp/y-komori/
>     URL : http://www.littleforest.jp/
>
>
> _______________________________________________
> uruma-dev mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/uruma-dev
> 



uruma-dev メーリングリストの案内