でリソースバンドルをロードする例外はここでは、現在の運用環境から新しいデータセンター環境に私たちのアプリケーションを移行しながら、私たちが直面している別の問題は、(参照です詳細は下記)のJava 1.5、JavaのEE 5は、6.1 WAS:ResourceBundle.getBundleは(...)
- 現在のプロダクション環境:Javaの1.4はJava EE 3は、5.1 WAS、JSF 2.1
- 新しい環境:Javaの1.5はJava EE 5は、WAS 6.1、JSF 2.1は
ここ次の構造を持つサードパーティのjarファイルがあります(画像を確認してください -
alt text http://i43.tinypic.com/fxdqo0.jpg
このクラスはResourceBundleの(db.properties)からデータベースのプロパティをロードするためのコードを持っている)いくつかの詳細を隠す私を許し。 Cavajがレンダリングしたコードは次のとおりです。
private static ResourceBundle getDBProperties() { if(dbProperties == null) { dbProperties = ResourceBundle.getBundle("db"); } return dbProperties; }
このアプリケーションは現在の環境でうまくいきます。しかし、どういうわけか、我々は新しい環境にアプリケーションを移動するときに我々が(下記参照)「MissingResourceExceptionが」を得る:
Caused by: java.util.MissingResourceException: Can't find bundle for base name db, locale en_US at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:863) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:832) at java.util.ResourceBundle.getBundle(ResourceBundle.java:576) at com.myco.wo.vs.util.OrderLovUtilities.getDBProperties(OrderLovUtilities.java:195)
我々は次の回避策を試してみましたが、どれも働いた:
- はとしてdb.propertiesを改名しましたdb_en_US.properties
- jarにプロパティファイルを配置する
- jarファイルをEARレベルで移動します。
ここで間違っている可能性がどのように勧めてください。
注:ファイルdb.propertiesは、WEB-INF/classesディレクトリの下にあります。また、上記の場所に置いてみましたが、役に立たなかった。
よろしく、
- アシシュ
私はあなたがJSF 1.2を意味していると推測しています:http://java.sun.com/javaee/javaserverfaces/reference/api/index.html – McDowell
アプリケーションにdb.propertiesがどこにありますか? – McDowell
リソースバンドルは、ロケール固有のメッセージとラベル用です。データベースはロケール固有ですか?私はこれがJNDIの目的だと思っていたでしょう。それは私にとってデータベースのプロパティのための間違った場所のようです。そのようにプールすることはできません。 – duffymo