1

Web ページで Java アプレットを使用しようとしています。私はたくさんのことを試したり検索したりしますが、チャンスはありません。これがケースです。

私のアプレットコードは app.html でシンプルです:

    <applet codebase="." archive="applet.jar" code="de.escape.quincunx.dxf.apViewer" width="640" height="480" name="TEST">
    <param name="file"               value="40.dxf">
    <param name="framed"             value="false">
    <param name="frameWidth"         value="800">
    <param name="frameHeight"        value="600">
    </applet>

このhtmlファイルは、ブラウザで直接開くと機能します。Apacheで提供すると機能しますが、IISで提供しようとすると機能せず、「クラスファイルに互換性のないマジック値21877456」というエラーが表示されます。Apache で php と html を試してみましたが、両方とも動作しています。

アプレットを提供しようとするとき、IIS で特別な構成が必要ですか?

回答ありがとうございます。

4

3 に答える 3

1

IIS が .class の適切なファイルを提供していないと思います。ファイルが見つからないため、おそらく 404 エラーまたは同様のエラーが返されています。

このエラーは、Java が .class ファイルを予期していたことを意味します。すべてのクラス ファイルは 0xCAFEBABE で始まります。これは、受信したファイルが実際にクラス ファイルであることを Java が確認できるマジック ナンバーです。ただし、あなたの場合、IIS によって返されるファイルはクラス ファイルではなく、0xCAFEBABE で始まっておらず、Java はそれを解析できません。

最も一般的な理由は、多くの場合 404 エラーが原因で、Web サーバーがファイルを提供できないことです。

内部で何が起こっているかを確認し、IIS ログで .class ファイルの要求を検索するか、ツール (場合によっては firebug) を使用してブラウザーに何が返されるかを確認する必要があります。

于 2012-05-08T15:45:07.170 に答える
0

最後に私は解決策を見つけました。実際には正確な解決策ではありませんが、Simone Gianni さんの回答に感謝します。彼の答えは、IIS アクセス ログを詳細に検索し、それらを APACHE アクセス ログと比較することにつながりました。はい、両方とも同じで、JAR ファイルにいくつかのクラスが配置されていないようです。そのため、apVPORT.class は jar ファイルに含まれておらず、このアプレットを作成した開発者は、それらのクラスを使用していなくても、アプレットの他の部分にこれらのクラスの呼び出しを残しています。

apache が情報または「そのオーケー」情報を java に送信せず、apVPORT.class の 404 が表示されても IIS が 404 を java に送信しても、残りのアプレットのロードを続行する理由に誰かが答えることができれば、これが最終的なものになります。この質問に対する答え。

于 2012-05-11T09:17:34.690 に答える
0

クラス ファイル内の互換性のないマジック値 21877456 : このエラーは、ページが jar ファイルに到達/読み取りできない場合に発生することがわかりました。

aspxページで -

   <applet code="FileAccess.class"
   archive="../applet/SignFileAccessApplet.jar" width="325" height="325">  
   </applet>

アーカイブでは、Visual Studio の intellisense が提供する "pickurl" オプションを使用して、url が適切かどうかを確認します。jar ファイル内のクラス ファイル パスは、code 属性で指定する必要があります。

于 2013-09-05T07:26:24.833 に答える