2

JavaPOSを使用してユーザーのローカルシステム上の決済端末と通信するアプレットを作成しました。

Eclipse IDE内から実行する場合、アプレットは正常に機能しますが、ブラウザーで実行する場合は機能しません。ブラウザでは、アプレットはjpos / res/jpos.propertiesファイルとjposxml.cfgファイルを見つけられないようです。

次のステートメントがアプレットで実行される場合(init()ではなくstart()メソッドで):

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

また、JposEntryレジストリにエントリはロードされません。

アプレットに2つのファイルを「表示」させるために、次のことを試みました。

  1. jpos / res / jpos.propertiesは、アプレットによって参照されるjarの1つにすでに存在しています。それでも、このファイルをアプレットのメインjarに追加しました。また、jarを含むサーバー上のディレクトリに(正しい相対パスで)追加してみました。これはどれも機能しません。

  2. 次のように、システムプロパティを適切な値に設定することで、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で完全に機能します。問題が何であるかについてのアイデアはありますか?

4

3 に答える 3

5

これは、同様の問題に直面している人の参考用です。

jpos.properties ファイルを表示する JavaPOS コードを取得できませんでしたが、上記のように値をシステム プロパティにロードすることはできたので、今はそのままにしておきます。

JavaPOS が URL から jpos.xml または jposxml.cfg をロードするようにするには、jpos.config.populatorFile ではなく、プロパティ jpos.config.populatorFileURL を設定する必要があります。これは、jpos.properties で設定するか、システム プロパティとして設定できます。

于 2012-04-11T09:27:29.107 に答える