当我将使用IntelliJ 14.0的Web应用程序部署到本地Apache Tomcat实例时,收到错误消息。我正在使用Spring Boot 1.2.1.RELEASE和JNDI连接。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:无法注册的MBean [org.apache.tomcat.dbcp.dbcp2.BasicDataSource @ 4f83492a]与关键'dataSource';嵌套的异常是javax.management.InstanceAlreadyExistsException:Catalina:type = DataSource,host = localhost,context =/project,class = javax.sql.DataSource,name =“jdbc/teams”
有什么可能是错误的方式应用程序已配置?
您可以发布完整的堆栈跟踪吗?我认为你可以通过将'spring.jmx.enabled'设置为'false'来解决这个问题 – 2015-01-21 11:22:58
这里是:http://codeviewer.org/view/code:4ae8 – tendryll 2015-01-21 15:42:11
我修改了application.yaml文件它现在正在工作。我添加了spring.jmx.enabled和spring.jpa.database-platform属性。 春: 型材: 活跃:生产 --- 春: 概况:发展 数据源: 平台:H2 --- 春: 模式:生产 数据源: JNDI -name:java:/ comp/env/jdbc/teams platform:mysql jpa: hibernate: ddl-auto:create-drop database-platform:org.hibernate.dialect.MySQL5Dialect jmx: enabled:false – tendryll 2015-01-21 15:46:09