問題タブ [jsr354]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1308 参照

java - OSGI での Java マネー参照実装

ここにある Java money (JSR354) 参照実装を使用しています: http://javamoney.github.io/ri.html

ただし、OSGI環境で使用しています。これにより、次の例外が発生します。

Java money クラスを使用する場合、例外はスローされませんが、ログに記録されるだけです。すべてが機能しますが、この例外が常にログに表示され、私と同僚にとって非常に迷惑です。

ライブラリ内のこのクラスまで問題を追跡しました。

updateConfig() メソッドが例外をスローします。MonetaryConfig コンストラクターがログに記録します。この問題は、行が原因で発生します

同じファイルの 2 つの URL、つまり「bundleresource://7.fwk302155142/javamoney.properties」と「bundleresource://7.fwk302155142:3/javamoney.properties」を返します。

.JAR ファイルを確認したところ、プロパティ ファイルが 1 つしかなく、間違いなく 2 回読み取られています。

問題の本当の原因は、リソースのロード方法にあります。OSGI では、これはリソースをロードする方法ではありません (代わりにバンドルからリソースを取得する必要があります)。ただし、このライブラリがリソースをロードする方法を変更する方法がわかりません (ソースの変更と再コンパイルは別として、やりたくないことです)。

このライブラリをロードするときに、これを適切に機能させるために使用できる OSGI テクニックはありますか?

編集: 私のマニフェスト バンドル クラスパス

0 投票する
1 に答える
973 参照

java - JavaMoney (JSR 354) で ExchangeRateProvider を作成するための推奨される方法は何ですか?

JavaMoney APIの新しいバージョン 1.0 を参照実装とともに使用し始めました。使用すべき特定の Exchangerates があるため、独自のExchangeRateProviderを実装する必要があります。org.javamoney.moneta.spi.AbstractRateProviderを拡張するクラス MyRateProvider を作成し、ファイル META-INF/services/javax.money.convert.ExchangeRateProvider に MyRateProvider-name を追加しました。これは機能しますが、org.javamoney.moneta 内の他のすべてのプロバイダーも、使用しない場合でもロードされます。それを回避する方法はありますか?

0 投票する
1 に答える
1032 参照

java - javamoney.properties のプロパティをオーバーライドしますか?

JavaMoney APIの新しいバージョン 1.0 を参照実装とともに使用して、javamoney.propertiesをオーバーライドすることにより、リソースローダーが他の ExchangeRateProvider をロードしないようにします。

ただし、ログには、それらがまだロードされていることが示されています。

LoaderService インターフェースから 'NEVER' はローカル リソース (リモートではなく) のロードをトリガーしますが、'LAZY' も試しました。

注目したのは、org.javamoney.moneta.internal.convert の ExchangeProviders のコンストラクターで、loader.loadDataAsync への呼び出しがあることです。

これは、DefaultLoaderServiceのメソッドregisterDataの「ONSTARTUP」の場合と同じです。

これが、javamoney.properties に何を入れても読み込まれる理由でしょうか?

他の ExchangeRateProvider を完全にオフにするにはどうすればよいですか? カスタムExchangeRateProviderのみを使用したい。

0 投票する
1 に答える
103 参照

java-money - JSR-354 ExchangeRates を使用すると、アプリケーションが終了しない

アプリケーションで JavaMoney 1.0 を使用しようとしていますが、デフォルトExchangeRateProviderの s を使用すると、アプリケーションの終了時に一部のスレッドがまだ実行されていることに気付きました。

既定では、指定された s が定期的にフェッチ レートを取得するように構成されていることは承知していExchangeRateProviderますが、どこかでデッドロックが発生しているか、スレッドがデーモンとしてマークされていないようです。

ExchangeRateProviderまたは、私が気付いていない sをシャットダウンする方法があるかもしれません。

0 投票する
1 に答える
505 参照

java - javax.money.CurrencyUnit がシリアライズ可能でないのはなぜですか?

javax.money.CurrencyUnitから拡張しないのはなぜjava.io.Serializableですか? そのすべてのサブタイプは を実装しjava.io.Serializable、さらに、休止状態のマッピングでそれを使用したい場合は、次の理由により、findbugs が (非常に正しく) 停止します。

JDKCurrencyAdapterこれは、休止状態のマッピングでクラスを使用する必要があることを意味しますか? インターフェイスを使用したいのですが、それが不可能な場合は、クラスを使用します。

0 投票する
2 に答える
423 参照

java - javax.money.CurrencyUnit の表示名を取得する

のインスタンスがjavax.money.CurrencyUnitあり、特定のロケールでの名前を表示したい (たとえば、「米ドル」、「ユーロ」、「日本円」など)。私はすべてのドキュメントを読みましたが、見つけることができた唯一のことは、フォーマットする方法ですMonetaryAmount:

そして、指定したことがわかりますCurrencyStyle.NAMEので、結果に通貨名が返されますが、問題は がMonetaryAmountなく、 のフォーマッタが見つからなかったことですCurrencyUnit

ありがとうございました