嗨,我們有一個在tomcat應用程序服務器上運行的spring應用程序。我想在JUnit中添加Springboot的集成測試。我現在得到的問題是,嵌入式tomcat服務器沒有存儲我們的數據源,因此無法查找它...如果服務器配置沒有定義數據源,我們的資源中應該有一個後備「context.xml」用過的。但是嵌入式的tomcat並沒有閱讀這個配置,我只是不知道該怎麼做。 以下是失敗的,我JUnit測試點,因爲它不能在嵌入式的Tomcat找到這個JNDI名稱:springboot讀取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 –