2017-09-14 113 views
2

我有一個servicemix bundle它試圖load jdbc driver和失敗消息的Apache ServiceMix的不能加載JDBC驅動程序的Apache DBCP

Cannot load JDBC driver class 'com.mysql.jdbc.Driver' 

這是我pom.xml文件

 <!-- MySQL --> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.32</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-pool2</artifactId> 
     <version>2.4.2</version> 
    </dependency> 
     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <configuration> 
       <instructions> 
        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
        <Import-Package> 
         com.mysql.jdbc, 
         * 
        </Import-Package> 
        <DynamicImport-Package> 
         * 
        </DynamicImport-Package> 
       </instructions> 
      </configuraiton> 
     </plugin> 

下面我有提到線我的features.xml文件使用features:addurl命令添加到karaf中。

<bundle>wrap:mvn:mysql/mysql-connector-java/5.1.32</bundle> 
<bundle>wrap:mvn:commons-dbcp/commons-dbcp/1.4</bundle> 
<bundle>wrap:mvn:commons-pool/commons-pool/1.6</bundle> 
+0

您是否檢查過https://stackoverflow.com/questions/29245102/maven-java-lang-classnotfoundexception-com-mysql-jdbc-driver? – user7294900

+0

有沒有定義的路線,如果有的話請張貼嗎?是否安裝了mysql連接器? –

+0

@ user7294900:mvn clean install工作得很好。我面臨的問題是與osgi import-export – veer7

回答

0

我解決了這個問題,通過增加servicemix wrapper jar for dbcp @https://mvnrepository.com/artifact/org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3

生成的pom條目

<dependency> 
     <groupId>org.apache.servicemix.bundles</groupId> 
     <artifactId>org.apache.servicemix.bundles.commons-dbcp</artifactId> 
     <version>1.4_3</version> 
    </dependency> 

注意:在使用karaf或任何OSGi的始終給予關注捆/ jar文件的META-INF/MANIFEST.MF,看看它導入(Import-Package)以及它出口(Export-Package

由於以下karaf-console截圖DBCP束,com.mysql.jdbc PAKAGE在屏幕截圖小號進口ServiceMix的DBCP

enter image description here

相同的導入作爲應該有<bundle>wrap:mvn:commons-dbcp/commons-dbcp/1.4$Import-Package=com.mysql.jdbc</bundle>但是徒勞。

0

你見過ClassNotFoundException: com.mysql.jdbc.Driver not found while using service mix?用戶添加以下到POM:

<osgi-import-package> 
    org.apache.commons.dbcp 
</osgi-import-package> 

<dependency> 
    <groupId>org.apache.servicemix.bundles</groupId> 
    <artifactId>org.apache.servicemix.bundles.commons-dbcp</artifactId> 
    <version>1.4_3</version> 
</dependency> 

而且也改變了路線,從

<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
+0

''dbcp''的'servicemix.bundles'不過是'bundle wrap',我已經通過' wrap:mvn:mysql/mysql-connector-java/5.1.32 \t wrap:mvn:commons- dbcp/commons-dbcp/1.4 \t wrap:mvn:commons-pool/commons-pool/1.6'並且我已經在我的代碼中使用dbcp作爲數據源,因此不需要更改它。我有更新我的問題。 – veer7

相關問題