2016-08-29 5 views
1

cargo maven2プラグインでいくつかの機能テストを実行しようとしています。これらのテストは、cargo maven2プラグインを使用せずに起動するとローカルTomcatサーバーで正常に動作します。プラグイン自体起動に成功しかし、ときに私は、彼らが次のトレースと500エラーコードを返すテストを実行します。私は5とojdbc 14ClassNotFoundException:cargo maven2プラグインを使用してテストを実行すると、oracle.jdbc.OracleDriver

をojdbcために私のポンポンと除外参考文献にojdbc 6 jarファイルを追加した

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.OracleDriver' 
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) 
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 

... 109 more 
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 
at java.lang.ClassLoader.findClass(ClassLoader.java:531) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at persistence.spi.hibernate.TransformingClassLoader.loadClass(TransformingClassLoader.java:46) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:14 

をここに私の貨物構成です:

 <plugin> 
     <groupId>org.codehaus.cargo</groupId> 
     <artifactId>cargo-maven2-plugin</artifactId> 
     <version>1.4.14</version> 
     <configuration> 
      <container> 
       <containerId>tomcat7x</containerId> 
       <type>installed</type> 
       <zipUrlInstaller> 
       <url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.zip</url> 
       <downloadDir>${project.build.directory}/downloads</downloadDir> 
       <extractDir>${project.build.directory}/extracts</extractDir> 
       </zipUrlInstaller> 
       <systemProperties> 
       <java.io.tmpdir>target/tmp</java.io.tmpdir> 
       </systemProperties> 
       <output>${project.build.directory}/cargo-container.log</output> 
       <log>${project.build.directory}/cargo.log</log> 
      </container> 
      <deployables> 
       <deployable> 
       <groupId>x.rest</groupId> 
       <artifactId>x-war</artifactId> 
       <type>war</type> 
       </deployable> 
      </deployables> 
      <configuration> 
       <type>standalone</type> 
       <home>${project.build.directory}/tomcat7x/container</home> 
       <properties> 
       <cargo.tomcat.ajp.port>9414</cargo.tomcat.ajp.port> 
            <cargo.servlet.port>9484</cargo.servlet.port> 
       <cargo.rmi.port>9496</cargo.rmi.port> 
       <cargo.logging>high</cargo.logging> 
       <war>${project.build.directory}/x-war.war</war> 
       <!-- This section was added by me but didn't fix the problem --> 
       <cargo.datasource.datasource> 
        cargo.datasource.jndi=jdbc/DB| 
        cargo.datasource.type=javax.sql.DataSource| 
        cargo.datasource.driver=oracle.jdbc.OracleDriver| 
        cargo.datasource.url=jdbc:oracle:thin:abc/[email protected]:22:node1| 
        cargo.datasource.username=abc| 
        cargo.datasource.password=abc 
       </cargo.datasource.datasource> 
       </properties> 
       <configfiles> 
       <configfile> 
        <file>${project.basedir}/src/test/resources/war-dependencies/stable-dev/context.xml</file> 
        <todir>conf</todir> 
        <tofile>context.xml</tofile> 
       </configfile> 
       </configfiles> 
       <files> 
       <file> 
        <file>${project.basedir}/src/test/resources/war-dependencies/stable-dev/service.keystore</file> 
        <todir>shared/classes</todir> 
       </file> 
       </files> 
      </configuration> 
     </configuration> 
     <executions> 
      <!-- The executions here deal only with INTEGRATION-TEST phase. We are NOT hitting REST Service via tests in the TEST phase. We need to be assured that our container is already 
       up and running. So cargo is started in PRE-INTEGRATION-TEST phase. --> 
      <execution> 
       <id>start-container</id> 
       <phase>pre-integration-test</phase> 
       <goals> 
       <goal>stop</goal> 
       </goals> 
      </execution> 
     <!-- <execution> 
       <id>stop-container</id> 
       <phase>post-integration-test</phase> 
       <goals> 
       <goal>stop</goal> 
       </goals> 
      </execution>--> 
     </executions> 
    </plugin> 

任意の提案/ポインタをいただければ幸いですので、私は、Webサービスの世界に初心者です。どこかの設定が欠けているかもしれませんか?

答えて

0

を、ローカルドライブにjarファイルをコピーしてローカルリポジトリに直接開いてコマンドプロンプトをjarファイルをインストールしたjarファイルのカレントディレクトリを移動して、次のコマンドを実行し、それを手に入れました働く私はojdbc6をコンテナセクション内の依存関係として追加する必要がありました。

0

tomcatで例外が発生しなかった理由は、Tomcatのlibフォルダにある既存のojdbc6.jarファイルが原因である可能性があります。

ただし、legal jdbcドライバjarファイルは、法的問題のためにpublic Mavenリポジトリに見つかりません。ここで

は別の、シンプルでまっすぐ進むソリューションがありますMavenのリポジトリ

Get Oracle JDBC drivers from the Oracle Maven Repository - NetBeans, Eclipse & Intellij

からのOracle JDBCドライバを得るための公式の命令です。

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.4.0 -Dfile=ojdbc6.jar -DgeneratePom=true 
+0

あなたの提案に感謝しますが、私はテストプロジェクト内で参照されたライブラリの一部としてojdbc6 -11.2.0.3を見ることができます。貨物がそれを拾うのに十分ではありませんか? – linuxNoob

関連する問題