Spring Boot 1.2.1.RELEASE和JNDI错误

时间:2015-01-21 09:17:20

标签: java spring spring-boot jndi

使用IntelliJ 14.0将我的Web应用程序部署到本地Apache Tomcat实例时收到错误。我正在使用Spring Boot 1.2.1.RELEASE和JNDI连接。

我的application.yaml文件的内容如下所示:

spring:
    profiles:
        active: production

---

spring:
    profiles: development
        datasource:
        platform: h2

---

spring:
    profiles: production
        datasource:
            jndi-name: java:/comp/env/jdbc/teams
            platform: mysql
    jpa:
        hibernate:
            ddl-auto: create-drop

我的配置文件Application.java如下所示:

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

}

我正在使用Apache Tomcat 8.0.15并在context.xml文件中配置了JNDI连接。

<Resource name="jdbc/teams" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="***" password="***" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/teams"/> 

我使用IntelliJ 14.0使用生产配置文件将我的应用程序本地部署到Apache Tomcat。

我尝试部署应用程序时收到的错误如下:

org.springframework.jmx.export.UnableToRegisterMBeanException:无法使用键'dataSource'注册MBean [org.apache.tomcat.dbcp.dbcp2.BasicDataSource@4f83492a];嵌套异常是javax.management.InstanceAlreadyExistsException:Catalina:type = DataSource,host = localhost,context = / project,class = javax.sql.DataSource,name =“jdbc / teams”

应用程序的配置方式可能有什么问题?

1 个答案:

答案 0 :(得分:0)

我修改了application.yaml文件,应用程序正在运行。我将spring.jmx.enabled和spring.jpa.database-platform属性添加到application.yaml文件中。

弹簧:     简介:         活跃的:生产


弹簧:     简介:发展     数据源:         平台:h2


弹簧:     简介:生产     数据源:         jndi-name:java:/ comp / env / jdbc / teams         平台:mysql     JPA:         冬眠:             ddl-auto:create-drop         database-platform:org.hibernate.dialect.MySQL5Dialect     JMX:         启用:false