Как настроить источник данных для приложения Spring-Boot в автономном режиме (война) и во встроенном Tomcat? - PullRequest
1 голос
/ 27 июня 2019

У меня есть Spring-Boot-Aplication со следующим dependencyManagement:

<dependencyManagement>
  <dependencies>
    <dependency>
      <!-- Import dependency management from Spring Boot -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.1.5.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

и следующим dependencies:

spring-boot-starter-jersey
spring-boot-starter-jdbc(exclusion:tomcat-jdbc) 
HikariCP(version:3.3.1)
ojdbc7

Вкл. Tomcat Я настроил JNDI-источник данных как:

<Resource name="jdbc/myDS" 
  type="javax.sql.DataSource" 
  driverClassName="oracle.jdbc.driver.OracleDriver" 
  username="Superuser" 
  password="secret"
  url="jdbc:oracle:thin:@xxxDbX"      
  ../>

В .properties -файл я добавил следующие свойства:

spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource    
spring.datasource.jndi-name=jdbc/myDS

As Spring-Bootв состоянии настроить DataSource из свойств, я позволил это сделать, и я не пишу дополнительный код для DataSource .Развернутый в Автономный Tomcat работает отлично.

Логически Spring Boot не может найти JNDI-Resource во встроенном Tomcat и запуск приложения как Spring-Boot-Application Я получил:

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'spring.datasource.type' to java.lang.Class<javax.sql.DataSource>:

    Property: spring.datasource.type
    Value: org.apache.tomcat.jdbc.pool.DataSource
    Origin: class path resource [application.properties]:12:24
    Reason: No converter found capable of converting from type [java.lang.String] to type [java.lang.Class<javax.sql.DataSource>]

Action:

Update your application's configuration

Я хотел бы иметь возможность запустить приложение как Spring-Boot-Применение , а также создание war -файла, который можно развернуть в любом Автономном Tomcat .

Возможно ли это, добавив properties на секундуDataSource, если приложение запускается как Spring-Boot-Application или у меня должен быть второй .properties файл?

...