java - ejemplo - Configuración automática de arranque de primavera para el origen de datos
private jlabel (2)
Bueno, la solución anterior podría funcionar, pero en mi caso con weblogic 11g, la solución anterior no pudo ayudarme. así que adjunte esta solución para que cualquier persona que contrarreste este problema lo encuentre útil.
solución:
Agregar la configuración del bean DataSource en la ruta de clase de exploración de componentes solucionará esto para los servlets 2.5 como weblogic 10.3.6 (11g) como a continuación
@Configuration
public class DBConfig{
@Bean
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("your url");
dataSource.setUsername( "username" );
dataSource.setPassword( "password" );
return dataSource;
}
}
Intento crear la aplicación Spring Boot con Hibernate 5 y Postgres 9. Ahora tengo el siguiente error:
Parameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type ''javax.sql.DataSource'' that could not be found.
- Bean method ''dataSource'' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property ''jndi-name''
- Bean method ''dataSource'' not loaded because @ConditionalOnBean (types: org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy: all) did not find any beans
Sin embargo, he añadido propiedades spring.datasource. *:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=root
Mi pom.xml:
<properties>
<hibernate.version>5.2.6.Final</hibernate.version>
<spring.data.version>1.10.6.RELEASE</spring.data.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring.data.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1212</version>
</dependency>
</dependencies>
Informe:
=========================
AUTO-CONFIGURATION REPORT
=========================
Positive matches:
-----------------
AopAutoConfiguration matched:
- @ConditionalOnClass found required classes ''org.springframework.context.annotation.EnableAspectJAutoProxy'', ''org.aspectj.lang.annotation.Aspect'', ''org.aspectj.lang.reflect.Advice'' (OnClassCondition)
- @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition)
AopAutoConfiguration.JdkDynamicAutoProxyConfiguration matched:
- @ConditionalOnProperty (spring.aop.proxy-target-class=false) matched (OnPropertyCondition)
DataSourceAutoConfiguration matched:
- @ConditionalOnClass found required classes ''javax.sql.DataSource'', ''org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType'' (OnClassCondition)
DataSourceAutoConfiguration#dataSourceInitializer matched:
- @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer; SearchStrategy: all) did not find any beans (OnBeanCondition)
DataSourceTransactionManagerAutoConfiguration matched:
- @ConditionalOnClass found required classes ''org.springframework.jdbc.core.JdbcTemplate'', ''org.springframework.transaction.PlatformTransactionManager'' (OnClassCondition)
DataSourceTransactionManagerAutoConfiguration.TransactionManagementConfiguration matched:
- @ConditionalOnMissingBean (types: org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration; SearchStrategy: all) did not find any beans (OnBeanCondition)
...
DataSourceAutoConfiguration.EmbeddedDatabaseConfiguration:
Did not match:
- EmbeddedDataSource did not find embedded database (DataSourceAutoConfiguration.EmbeddedDatabaseCondition)
DataSourceAutoConfiguration.PooledDataSourceConfiguration:
Did not match:
- AnyNestedCondition 0 matched 2 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource did not find supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property ''type'' (DataSourceAutoConfiguration.PooledDataSourceCondition)
DataSourceAutoConfiguration.TomcatDataSourceJmxConfiguration:
Did not match:
- @ConditionalOnClass did not find required class ''org.apache.tomcat.jdbc.pool.DataSourceProxy'' (OnClassCondition)
DataSourcePoolMetadataProvidersConfiguration.CommonsDbcp2PoolDataSourceMetadataProviderConfiguration:
Did not match:
- @ConditionalOnClass did not find required class ''org.apache.commons.dbcp2.BasicDataSource'' (OnClassCondition)
DataSourcePoolMetadataProvidersConfiguration.CommonsDbcpPoolDataSourceMetadataProviderConfiguration:
Did not match:
- @ConditionalOnClass did not find required class ''org.apache.commons.dbcp.BasicDataSource'' (OnClassCondition)
DataSourcePoolMetadataProvidersConfiguration.HikariPoolDataSourceMetadataProviderConfiguration:
Did not match:
- @ConditionalOnClass did not find required class ''com.zaxxer.hikari.HikariDataSource'' (OnClassCondition)
DataSourcePoolMetadataProvidersConfiguration.TomcatDataSourcePoolMetadataProviderConfiguration:
Did not match:
- @ConditionalOnClass did not find required class ''org.apache.tomcat.jdbc.pool.DataSource'' (OnClassCondition)
DataSourceTransactionManagerAutoConfiguration.DataSourceTransactionManagerConfiguration:
Did not match:
- @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)
¿Algunas ideas? En la mayoría de los tutoriales, todo es muy estándar y muy simple, parece que me pierdo una pequeña parte.
Te estás perdiendo varias clases (la mayoría relacionadas con el grupo) en tu classpath. La solución más sencilla es usar el arranque de arranque Spring para JPA, que es:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Si hace esto, puede eliminar las siguientes dependencias, ya que todas son parte del motor de arranque:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring.data.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
La solución alternativa es agregar manualmente un proveedor de grupo a su ruta de clase, el valor predeterminado de spring-boot-starter-data-jpa es tomcat-jdbc (Hikari for Spring boot 2.x) pero puede usar cualquier proveedor de grupo de conexión que desee. Está listado en la documentación .