- PR -

java web start(jws)で起動ファイルエラーになる

投稿者投稿内容
y.matu
会議室デビュー日: 2005/09/03
投稿数: 4
投稿日時: 2005-09-03 14:25
以下の方法で作成したjarファイル等に署名を行い、htmlでjnlpファイルをロードして起動しようとしたところ、「JNLPファイル内のJARリソースが単一の証明書によって署名されていません。」とエラーメッセージが出て、プログラムを実行することができませんでした。
サーバー側でjarファイルを直接起動すると問題なくプログラムが実行できますので、jwsの問題と思われます。
インターネットでいろいろ検索してみましたが、このエラーメッセージ自体を探すこともできませんでした。
どなたか、分かる方がいらっしゃいましたら、よろしくお願いします。

環境:Win2000,JDK1.5.0 (Eclipse3.0で作成し、jarファイルにエクスポート)
署名方法:keytool -genkey -keystore myKeystore -alias myself
     keytool -selfcert -alias myself -keystore myKeystore
     jarsigner -keystore myKeystore ****.jar myself
署名したjarファイル:作成したプログラムのjar,activation.jar,axis.jar,axis-ant.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,itext-1.3.jar,iTextAsian.jar,jaxrpc.jar,log4j-1.2.8.jar,mail.jar,saaj.jar,wsdl4j-1.5.1.jar,xmlsec.jar
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-04 21:56
引用:
「JNLPファイル内のJARリソースが単一の証明書によって署名されていません。」



もう調査済みであるなら申し訳ありませんが、他の証明書で署名された
jarがjnlpにより一緒にダウンロードされているのではないでしょうか。

以前、SWTを使うアプリを自分で署名した場合は問題なく使えましたよ。
y.matu
会議室デビュー日: 2005/09/03
投稿数: 4
投稿日時: 2005-09-05 09:08
あしゅさん、ありがとうございます。

>他の証明書で署名されたjarがjnlpにより一緒にダウンロードされているのではないでしょうか。

はい、jarファイルを調べて見たところ、activation.jarとmail.jarが既に他の証明書で署名されていました。
しかし、この2つのjarファイルはそれぞれダウンロードしてきて利用しているものなので、署名のないものがあるわけではないのです。
これで、原因はわかったのですが、その対応方法がわかりません。
既に他の証明書で署名されているjarファイルをjwsで自分の署名を付けて他のjarファイルといっしょに利用したい場合は、どうすればいいのでしょうか?
よろしくお願いします。
ごふ
会議室デビュー日: 2005/08/25
投稿数: 2
お住まい・勤務地: 新宿区から品川区へ
投稿日時: 2005-09-05 17:55
activation.jarとmail.jarを配置するためのjnlpファイルを作成して、
メインモジュールのjnlpファイル中のextensionタグでそれらのjnlpファイル
を指定するという方向でしょうか・・

もっと簡単な方法があるかもしれませんが。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-09-05 18:33
以下のページなんかが参考になるかも知れません。
http://www-6.ibm.com/jp/developerworks/opensource/030822/j_os-jws.html

上記の記事はSWTのモジュールを配布していますが、これをJavaMailのモジュールに置き換えてれば、いけるかも。
y.matu
会議室デビュー日: 2005/09/03
投稿数: 4
投稿日時: 2005-09-05 21:27
ごふさん、ハツキタツミさん、ありがとうございます。

>activation.jarとmail.jarを配置するためのjnlpファイルを作成して、
>メインモジュールのjnlpファイル中のextensionタグでそれらのjnlpファイル
>を指定する

activation.jarとmail.jarを自己署名せずに、上記の方法で行ったところ、実行することができました。本当に助かりました。
恥ずかしながら、jnlpにextensionタグがあるということを知りませんでした。
私は、java+Swing+Axis(SOAP)+mySQL+jws でリッチクライアントのシステムを目指していますが、まだまだ、jwsに関する資料が少ないように感じています。
また質問することがあると思いますので、今後とも、よろしくお願いします。
あきら
会議室デビュー日: 2006/12/17
投稿数: 3
投稿日時: 2006-12-17 20:47
はじめまして、あきらろ申します。

>activation.jarとmail.jarを配置するためのjnlpファイルを作成して、
>メインモジュールのjnlpファイル中のextensionタグでそれらのjnlpファイル
>を指定する

実は自分もJavaMailとJNLPでずっと悩んでいました。
申し訳ありませんが、各JNLPの中身を公開していただけないでしょうか?
よろしくお願いします。
y.matu
会議室デビュー日: 2005/09/03
投稿数: 4
投稿日時: 2006-12-18 00:05
お役に立てば、いいのですが。

メインのファイル(hogehoge.jnlp)

<?xml version="1.0" encoding="Shift-jis" ?>
<jnlp spec="1.0+" codebase="http://192.168.1.***/*******/****/hogehoge" href="hogehoge.jnlp">
<information>
<title>タイトル名</title>
<vendor>ベンダー名</vendor>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.5"/>
<jar href="hogehoge.jar"/>
<jar href="../jar/axis.jar"/>
<jar href="../jar/axis-ant.jar"/>
<jar href="../jar/commons-discovery-0.2.jar"/>
<jar href="../jar/commons-logging-1.0.4.jar"/>
<jar href="../jar/itext-1.3.jar"/>
<jar href="../jar/iTextAsian.jar"/>
<jar href="../jar/jaxrpc.jar"/>
<jar href="../jar/log4j-1.2.8.jar"/>
<jar href="../jar/saaj.jar"/>
<jar href="../jar/wsdl4j-1.5.1.jar"/>
<extension href="hogehoge_sub.jnlp"/> ★ここが重要です
</resources>
<application-desc main-class="hogehoge.Main">
<argument>192.168.1.***</argument>
</application-desc>
</jnlp>


サブファイル(hogehoge_sub.jnlp)

<?xml version="1.0" encoding="Shift-jis" ?>
<jnlp spec="1.0+" codebase="http://192.168.1.***/*******/****/hogehoge" href="hogehoge_sub.jnlp">
<information>
<title>タイトル名</title>
<vendor>ベンダー名</vendor>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<jar href="../jar/activation.jar"/>
<jar href="../jar/mail.jar"/>
</resources>
<component-desc />
</jnlp>

スキルアップ/キャリアアップ(JOB@IT)