Oracle10g 使用带有JNDI Oracle数据源的独立Tomcat进行Spring引导
我有一个新的SpringBoot(1.2.1.RELEASE)web/Jpa应用程序,我想连接到JNDI数据源(独立Tomcat的context.xml中定义的Oracle数据库) 然而,当我尝试这样做时,我总是得到以下异常:Oracle10g 使用带有JNDI Oracle数据源的独立Tomcat进行Spring引导,oracle10g,spring-boot,jndi,tomcat8,Oracle10g,Spring Boot,Jndi,Tomcat8,我有一个新的SpringBoot(1.2.1.RELEASE)web/Jpa应用程序,我想连接到JNDI数据源(独立Tomcat的context.xml中定义的Oracle数据库) 然而,当我尝试这样做时,我总是得到以下异常: Unable to register MBean [org.apache.tomcat.dbcp.dbcp2.BasicDataSource@102f8ea9] with key 'dataSource'; nested exception is javax.manage
Unable to register MBean [org.apache.tomcat.dbcp.dbcp2.BasicDataSource@102f8ea9] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: Catalina:type=DataSource,class=javax.sql.DataSource,name="jdbc/npacore"
我的pom.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>bootwar</artifactId>
<version>0.1.0</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
<exclusion>
<artifactId>tomcat-jdbc</artifactId>
<groupId>org.apache.tomcat</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<!-- <dependency> -->
<!-- <groupId>oracle.ojdbc</groupId> -->
<!-- <artifactId>ojdbc</artifactId> -->
<!-- <version>6</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>hello.Application</start-class>
<java.version>1.7</java.version>
</properties>
<build>
<finalName>${artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>http://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>http://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
我在这里关注了与MySQL非常相似的博客:您在Spring Boot中遇到的问题。您可以通过将spring.jmx.enabled
设置为false
来解决这个问题
spring.datasource.jndi-name=java:/comp/env/jdbc/npacore
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect