

XHTMLからJava
Appletを起動しようとしましたがhoge.classが存在しないとclassnotfoundexceptionが発生します。LocalのEclipse環境では起動しましたが、Glassfishにデプロイするとエラーが発生します。

以下は起動するときに呼び出すindex.xhtmlです。  
class,jar,xhmtl共にWebContentフォルダに入れてあります。

[code]

    <div style="margin: 0 auto;">
    <object type="application/x-java-applet" codebase="." width="200px" height="50px">
    <param name="code" value= "hoge.class" />
    <param name="codebase" value="." />
    <param name="archive" value="signedHoge.jar" />
    <param name="archive" value="hoge.jar" />
    </object>
    
[/code]

よろしくお願い致します。

※編集  
・フォルダ構成  
WebContent  
- index.xhtml  
- hoge.class ※1  
- signedhoge.jar  
- hoge.jar

※1  
hoge.classは同プロジェクトの以下に作成したものを移動しました。  
build  
- test  
-- hoge.class

・jarファイルは以下のコマンドで作成しました。

[code]

    keytool -genkey -keyalg rsa -storepass changeit -alias appletkey -keypass changeit -validity 365
    
    jar cfM hoge.jar hoge.class
    
    jarsigner -storepass changeit -keypass changeit -signedjar signedHoge.jar hoge.jar appletkey
    
[/code]

・マニフェストファイル内容

[code]

    Manifest-Version: 1.0
    Created-By: 1.8.0_45 (Oracle Corporation)
    Permissions: sandbox
    Name: hoge.class
    SHA-256-Digest: RZ71edQJoTbT9OHsDBLcXXJ+fMthkHIynfD/+mzXfRk=
    
[/code]


CC BY-SA 3.0
2015-07-06T04:56:52.640
12067
2015-08-05T14:22:02.630
2015-07-06T13:37:07.650
9577
9577
question
java jsf
Java Applet起動時にclassnotfoundexception


  * archive  
hoge.classを含む署名済みのjarのみを指定します。  
`<param name="archive" value="signedHoge.jar" />`

  * マニフェスト  
7u51以降ではMANIFEST.MFファイルにPermissions属性が必須です。  
[【Java 7 u51 関連情報(1)】Java 7
Update51におけるRIAの新しいセキュリティ要件について](https://blogs.oracle.com/otnjp/entry/java_7_u51_update_info)

  * 署名  
7u51以降、自己署名はブロックされるので証明書の購入か例外サイトへの追加が必要です。  
[Generating a Certificate Signing Request (CSR) for a Public Key
Certificate](http://docs.oracle.com/javase/tutorial/security/sigcert/index.html#GenCSR)  
[どうすれば例外サイト・リストを構成できますか。](https://www.java.com/ja/download/faq/exception_sitelist.xml)


CC BY-SA 3.0
2015-07-06T07:13:07.147
12073
2015-07-06T10:21:30.360
2015-07-06T10:21:30.360
241
241
12067
answer