2017-01-31 11 views
1

WebLogic 12cに配備されるWARファイル用のJNDIデータベース接続を設定しようとしています。これは私が持っているものです。SpringブートによるJNDI接続の設定

application.propertiesファイルで
@Bean 
public DataSource dataSource() throws DataSourceLookupFailureException { 
    JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup(); 

    return dataSourceLookup.getDataSource("jndiName"); 
} 

私は混乱しています、なぜjndiNameが2回書かれていますか?私は正しく従っていますか?これは正しい設定方法ですか?

私はgetDataSource()にJNDI名をハードコーディングする必要がないように春ブーツは、自動的に、application.propertiesからJNDI名が取得されます、または私は、その後にJNDI名をハードコーディングする場合、私は必要がないという印象をしています最初にそのプロパティをapplication.propertiesに含めるようにしてください。

私の解釈から、JNDI接続を設定する方法をカバーするガイドの2つのセクションは、互いに矛盾するように見えます。私は何が間違っていますか?これを設定する正しい方法は正確に何ですか?

+0

これは正しい方法ではありません。単に 'application.properties'にJNDI名を指定すれば、SpringBootが検索を行います。自分のルックアップを削除します。あなたはどちらかを選択する必要はありません(複数のデータソースがある場合を除き、別の方法を見つける必要があります)。あなたが指しているセクションは、デフォルトの設定オプションが必要なものを提供しないカスタムデータソースを設定することです。 –

+0

@ M.Deinum私はこれに新しいので、私と一緒にご負担ください。だから、 'dataSource()'全体が不要だと言っていますか?私が必要とするのは、 'application.properties'の1つのライナーだけです。また、ファイルが有効になるためには、ファイル内にあることが必要な他の項目がありますか? – thegreatjedi

+1

いいえ、基本的に 'application.properties'のエントリが必要です。 –

答えて

0

あなたは、このアプローチは、mainメソッドで、プロファイルを定義する埋め込まれた容器にH2または他のデータベースを使用するには

を動作しません埋め込まれたコンテナを実行したい場合は、カスタムBeanを削除し、application.propertiesを使用しますが、ローカル環境でとデータソースを構成します。この方法では、ローカルとプロダクションの両方で動作します

関連する問題