【问题标题】:ClassNotFoundException: com.mysql.jdbc.Driver not found while using service mixClassNotFoundException:com.mysql.jdbc.Driver 在使用服务组合时未找到
【发布时间】:2012-05-11 03:41:22
【问题描述】:

我正在使用 servicemix 4.4.1 和 maven 3.0.4。我对 servicemix/java 世界很陌生 - 我的主要知识是 c#/php。

我已将以下内容添加到我的一条路线中:

<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://10.10.10.29/ServiceMix"/>
  <property name="username" value="somet"/>
  <property name="password" value="somet"/>
</bean>

如果我随后将路由部署到服务组合,我会得到:

ClassNotFoundException: com.mysql.jdbc.Driver not found

通过谷歌搜索,我发现我的 POM 中缺少一些行,所以我添加了以下内容:

<osgi-import-package>
org.apache.servicemix.bundles.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>

我还运行了以下命令,以便 servicemix 了解捆绑包:

osgi:install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-pool/1.5.4_4
osgi:install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3

但是,现在当我尝试启动捆绑包时,我得到:

Error executing command: Could not start bundle mvn:com.boohoo/boohoo-esb-products-sage-internal/1.0-SNAPSHOT in feature(s) boohoo-esb-products-sage-internal-1.0-SNAPSHOT: Unresolved constraint in bundle boohoo-esb-products-sage-internal [256]: Unable to resolve 256.0: missing requirement [256.0] package; (package=org.apache.servicemix.bundles.commons-dbcp)

我还做了一些谷歌搜索,说我可以将清单文件添加到项目中,以便允许动态导入。因此,我在项目的路径中添加了一个名为:MANIFEST.MF 的新文件,并将以下内容添加到文件中:

Fragment-Host:
 org.apache.commons.dbcp 
DynamicImport-Package:
 *

但这也没有任何效果。我觉得我在兜圈子。任何帮助/指针都会很棒。

我希望一切都有意义,但如果没有,请直说,我会尽力解释得更好。

干杯。

【问题讨论】:

    标签: jdbc apache-servicemix classnotfound


    【解决方案1】:

    请注意,此错误的另一个原因可能是缺少 mysql 连接器!在 Karaf shell 中使用此命令安装:

    安装 -s mvn:mysql/mysql-connector-java/5.1.18

    【讨论】:

      【解决方案2】:

      解决了这个问题。我更新了我的代码如下:

       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://10.10.10.29/ServiceMix"/>
        <property name="username" value="something"/>
        <property name="password" value="something"/>
      </bean>
      

      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>
      

      删除了清单文件。 从 servicemix 中卸载 commons-pools。

      【讨论】:

        猜你喜欢
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多