2017-01-15 4 views
1

私はローカルシステム上でRest ControllerとOracleを使用してSpringブートアプリケーションを作成しましたが、IDEを実行してもmvnビルドは良いパッケージでしたが、以下のエラー。私はspring.datasourceをすべて提供しているapplication.propertiesを持っていますが、ここではエラーが発生しています。お知らせ下さい。RESTのためのSpringブートを実行中

<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/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.sumit.location</groupId> 
<artifactId>location</artifactId> 
<packaging>jar</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>location Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<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-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-rest</artifactId> 
    </dependency> 
    <!-- <dependency> <groupId>org.springframework.security.oauth</groupId> 
     <artifactId>spring-security-oauth2</artifactId> <version>2.0.5.RELEASE</version> 
     </dependency> --> 
    <!-- added the below oracle jdbc dependency to get the ojdbc7 jar into 
     classpath --> 
    <!-- the oracle jars are not publically hosted in maven repo so we have 
     to download it seperatly and install it to maven --> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc7</artifactId> 
     <version>12.1.0.1</version> 
     <scope>system</scope> 
     <systemPath>${project.basedir}/src/lib/ojdbc7.jar</systemPath> 
    </dependency> 



</dependencies> 
<properties> 
    <java.version>1.8</java.version> 
</properties> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <configuration> 
       <executable>true</executable> 
      </configuration> 
     </plugin> 
    </plugins> 
    <finalName>location</finalName> 
</build> 

私は春のブーツを試しとexcutable瓶としてそれを実行しようとしています:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: oracle.jdbc.driver.OracleDriver 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1154) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1056) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:372) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1134) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1028) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081) ~[spring-context-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:856) ~[spring-context-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.3.RELEASE.jar!/:1.4.3.RELEASE] 
    at com.sumit.location.AppBootConfig.main(AppBootConfig.java:22) [classes!/:0.0.1-SNAPSHOT] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_112] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_112] 
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_112] 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [location.jar:0.0.1-SNAPSHOT] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [location.jar:0.0.1-SNAPSHOT] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [location.jar:0.0.1-SNAPSHOT] 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [location.jar:0.0.1-SNAPSHOT] 


Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: oracle.jdbc.driver.OracleDriver 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1134) ~[spring-beans-4.3.5.RELEASE.jar!/:4.3.5.RELEASE] 

は、ここに私のpom.xmlです。

+1

=>ドライバ・クラスをロードできません:oracle.jdbc.driver.OracleDriver – alexbt

+0

どうすればロードできますか? IDEで動作しています。 –

+0

私はグーグルで、そのパスにojdbc jarを保存することがわかりました。さらに、私がjarファイルに詰め込むことなくクエリを実行していて、IDEを使って同じエラーを投げないならば。 –

答えて

1

oracle.jdbc.driver.OracleDriver ojdbc7.jarはsystemスコープに含まれているため、実行時に見つかりません。これは可視性の点でprovidedのようなものです。 Eclipseはスコープをボトルしていないため、実行時にすべてを含むだけなので、Eclipseで動作します。

少なくとも、compileまたはruntimeのいずれかの依存関係が必要です。私はそれがファイルの依存関係で行うことはできないと信じています。

ソリューション1 - ローカルリポジトリを定義します

はあなたのjarファイルの場所を指すようにMavenのリポジトリを定義します。

<repositories> 
    <repository> 
    <id>project-local-repo</id> 
    <url>file://${project.basedir}/src/lib/</url> 
    </repository> 
</repositories> 

移動/ ${project.basedir}/src/lib/com/oracle/ojdbc7-12.1.0.1.jar

にあなたのライブラリーの名前を変更し、その後、通常はそれが含まれています。

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc7</artifactId> 
    <version>12.1.0.1</version> 
</dependency> 

解決策2 - instあなたの.m2にすべてのライブラリ

はあなたの.m2リポジトリにjarファイルをインストールするには、次のコマンドを使用します。

mvn install:install-file -Dfile=<jarfilePath> \ 
    -DgroupId=<groupId> \ 
    -DartifactId=<artifactId> \ 
    -Dversion=<version> \ 
    -Dpackaging=<packaging> \ 
    -DlocalRepositoryPath=<repoPath> 

私は次のように仕事をするべきだと思う:

mvn install:install-file -Dfile=..../src/lib/ojdbc7.jar \ 
    -DgroupId=com.oracle \ 
    -DartifactId=ojdbc7 \ 
    -Dversion=12.1.0.1 \ 
    -Dpackaging=jar 

そして宣言します通常の依存関係:

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc7</artifactId> 
    <version>12.1.0.1</version> 
</dependency> 
+0

これを試してみます。ありがとうございます –

+0

それは働いた。私は瓶が適切に設置されていないと思う。私はそれをもう一度インストールし、あなたが言ったように変更しました。ありがとうございました。 –

関連する問題