0

jZebraアプレットを使用してチケットプリンターに印刷するWebパネルが1つあります。Java 1.6.29 ではすべて正常に動作しますが、1.7.10 にアップデートした後、アプレットのロードが jZebra.PrintApplet.class ClassNotFoundException で失敗します。アプレットをロードする HTML は次のようになります。

...
<p>
<applet name="jZebra" code="jzebra.PrintApplet.class" archive="./jzebra.jar" width="100" height="100"></applet>
</p>
...

jzebra.jar は、html ファイルと同じフォルダーに残ります。

何が問題になるか知っていますか?

4

2 に答える 2

1

qz-print 1.8.0 に更新し、JNLP (または新しく提供されたアプレット タグ) を使用してアプレットを展開することをお勧めします。アプレットタグを保持することを選択した場合は、何年にもわたって大幅に変更されているため、更新することをお勧めします。

<applet id="qz" archive="./qz-print.jar" name="QZ Print Plugin" code="qz.PrintApplet.class" width="55" height="55">
    <param name="jnlp_href" value="qz-print_jnlp.jnlp">
    <param name="cache_option" value="plugin">
    <param name="disable_logging" value="false">
    <param name="initial_focus" value="false">
</applet>

または、古い「jzebra」名を保持する必要がある場合

<applet name="jzebra" archive="./qz-print.jar" code="qz.PrintApplet.class" width="55" height="55">
    <param name="jnlp_href" value="qz-print_jnlp.jnlp">
    <param name="cache_option" value="plugin">
    <param name="disable_logging" value="false">
    <param name="initial_focus" value="false">
    <param name="printer" value="zebra">
</applet>

さらに、Java のすべてのバージョンを完全に削除し、Java 7 を再インストールすることをお勧めします。これは、アップグレード プロセスで複数の問題が発生したためです。

私の経験からすると、Java 7 へのアップグレードの約 10 分の 1 が壊れています。いくつかの解決策がありますが、私にとって最も効果的だったのは、以前のバージョンをすべてアンインストールし、Java 7 を再起動して復元することです。多くのクライアントは、アプレットをロードするのに何時間も費やし、Oracle テスト ページが機能しないことを発見しました。

さらに、Java 7 では多くの変更がありました。特に JNLP の処理方法です。一部の古いバージョンの Java 6 には適切な JNLP サポートがなかったため、アプレット タグの一部として .class パラメータが必要でした。

さらに苛立たしいことに、jzebra のような無料のアプレットの場合、Oracle は自己署名アプレットが最新の Java バージョンで実行されるのをブロックします。これは、初期の Java 7 バージョンで警告付きで導入され、7u51 で完全にブロックされました。

しかし、もっとあります... 7u21 で、Oracle は、Java バージョンが古いことが検出され、セキュリティ設定が高に設定されている場合、JavaScript (LiveConnect) をブロックすることを決定しました。(High がデフォルトの BTW です)。「古い」とは何かについて知りたい場合は、タイマー (その Java バージョンがリリースされてから 3 か月) または Oracle サイトのチェック (つまり、新しいバージョンが利用可能になった) によって判断できます。幸いなことに、Java 7 u51 は、指定された URL に対するこの LiveConnect ブロック動作を防止するためのホワイトリスト機能を追加しました: https://blogs.oracle.com/java-platform-group/entry/upcoming_exception_site_list_in -署名されたアプレットおよび/または古い Java バージョン。

注: Java セキュリティ タブの「Signer CA」セクションに自己署名証明書をインストールする必要がある場合もありますが、これは最初に理解しておくべきセキュリティ リスクであり、この問題の範囲外である可能性があります。

新しいバージョンの jzebra アプレット (現在は "qz-print" と呼ばれています) には、これらの負荷の問題のいくつかに対するチェックと、それらを解決するためのアラート ダイアログがあります。それらは、sample.html で確認できます。

最新の印刷プラグインと Java バージョンをダウンロードして、http://qzindustries.com/supportにアクセスしてください。

-トレス

于 2014-03-20T14:45:56.610 に答える
0

/dist/jzebra.jar のように、Web サイトのルートに相対する jzebra.jar へのパスを設定してみてください。

それは私のために働いた...

于 2013-02-08T11:00:47.330 に答える