2012-04-03 43 views
2

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つのファイルを「見る」ために、アプレットを取得するには、次の試してみた:

  1. JPOSの/ resを/ jpos.propertiesはすでにアプレットによって参照瓶の一つです。それにもかかわらず、私はこのファイルをアプレットのメイン・ジャーに追加しました。また、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で完全に機能します。問題の内容は何ですか?

+0

私は同じ問題があります。これは、jpos.propertiesファイルをロードしようとしたときにsunrsasign.jarをロードしようとしたことに関連していますが、そのjarは以前のJDKにのみ含まれています。なぜこのファイルを読み込もうとしているのですか? –

答えて

5

これは、同様の問題に直面している人のためのものです。

jpos.propertiesファイルを表示するためのJavaPOSコードを取得できませんでしたが、前述のようにシステムプロパティに値を読み込むことができます。

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

0

同じ問題が発生しました。

JposServiceLoaderはclasspathを使用してパスのルートを検索します。例えば

、アプリケーションのためのローカルクラスパスは、次に

C:/myapp/target/classes 

jpos.propertiesパス

C:/myapp/target/classes/jpos/res/jpos.properties 

P.S.によってあるべきである場合多分、それはjposファイルを配置する最良の方法ではありませんが、少なくともこの問題を解決することから始めることができます。

関連する問題