JavaPOSを使用してユーザーのローカルシステム上の支払い端末と通信するアプレットを作成しました。JavaアプレットがJavaPOS構成ファイルを見つけることができません
Eclipse IDEから実行すると、アプレットは正常に動作しますが、ブラウザで動作しても動作しません。ブラウザでは、アプレットはjpos/res/jpos.propertiesファイルとjposxml.cfgファイルを見つけることができません。
JposEntryRegistry registry = JposServiceLoader.getManager().getEntryRegistry();
registry.load();
これは私がJavaコンソールウィンドウに表示出力されます:
jpos/res/jpos.properties file not found
jpos/res/jpos.properties file not found
jpos/res/jpos.properties file not found
次の文は、アプレット(スタートでinit()メソッドではない())で実行されている
また、JposEntryレジストリにエントリがロードされていません。
私は2つのファイルを「見る」ために、アプレットを取得するには、次の試してみた:
JPOSの/ resを/ jpos.propertiesはすでにアプレットによって参照瓶の一つです。それにもかかわらず、私はこのファイルをアプレットのメイン・ジャーに追加しました。また、jarを含むサーバー上のディレクトリ(正確な相対パス)に追加しようとしました。これは動作しません。
私はこのように、適切な値でシステムプロパティを設定することによって発見されるjpos.propertiesのできないことを回避することができます。
System.setProperty("jpos.loader.serviceManagerClass", "jpos.loader.simple.SimpleServiceManager"); System.setProperty("jpos.config.populatorFile", "jposxml.cfg"); System.setProperty("jpos.util.tracing.TurnOnNamedTracers", "JposServiceLoader,SimpleEntryRegistry,SimpleRegPopulator,XercesRegPopulator"); System.setProperty("jpos.util.tracing.TurnOnAllNamedTracers", "ON");
しかし、アプレットはまだjposxml.cfgを見つけることができません。このファイルは、アプレットのメインjarファイルのルートにあります。私は、jarファイルと同じディレクトリにサーバーを置こうとしました。私もjposxml.cfgだけを含む別のjarファイルを作成しようとしましたが、それはどちらも動作しません。 Javaコンソールウィンドウに次の出力が表示されます。
[AbstractRegPopulator]getPopulatorFileIS(): populatorFileName=jposxml.cfg [JposServiceLoader]manager.getEntryRegistry().load() OK [AbstractRegPopulator]getPopulatorFileIS(): populatorFileName=jposxml.cfg
ただし、JposEntriesのリストは空です。その結果、アプレットは支払い端末と通信することができません。
アプレットは、JNLPファイル(およびJNLP拡張を介して必要なすべてのJARファイル)を介してロードされます。どちらのJNLPファイルも、セキュリティが< all-permissions/>に設定されています。すべてのjarは同じ証明書で署名されています。同じコードはEclipseで完全に機能します。問題の内容は何ですか?
私は同じ問題があります。これは、jpos.propertiesファイルをロードしようとしたときにsunrsasign.jarをロードしようとしたことに関連していますが、そのjarは以前のJDKにのみ含まれています。なぜこのファイルを読み込もうとしているのですか? –