こんにちは、Tomcatアプリケーションサーバー上で動作するSpringアプリケーションがあります。 JUnitでSpringbootとの統合テストを追加したいと思います。埋め込まれたTomcatサーバーが私たちのデータソースを保存していないので、それを参照することができないという問題がありました...サーバ設定にデータソースが定義されていない場合、リソース内にfallback "context.xml"中古。しかし、組み込みのTomcatはこの設定を読んでいないので、これを行う方法を理解できません。 それが埋め込まれたTomcatの中で、このJNDI名を見つけることができませんので、以下は、私のJUnitテストの失敗のポイントです:springboot read tomcat-context.xml
@Bean
public DataSource dataSource()
{
return new JndiDataSourceLookup().getDataSource("jdbc/myDB");
}
フォールバックのcontext.xmlは、次のようになりますどのように
<Context>
<!-- HSQL -->
<Resource name="jdbc/myDB" auth="Container"
type="javax.sql.DataSource" driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:mem:mymemdb;shutdown=true" username="SA" password=""
maxTotal="100" maxIdle="5" maxWaitMillis="10000"/>
<Manager pathname=""/>
</Context>
起動時にこのファイルを埋め込みのTomcatにプッシュできますか?
デフォルトでは、埋め込みTomcatではJNDIが無効になっています。これは役立つかもしれません:http://stackoverflow.com/questions/24941829/how-to-create-jndi-context-in-spring-boot-with-embedded-tomcat-container –