我正在使用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:
*
但这也没有效果。我觉得我要围成一圈。任何帮助/指针都会很棒。
我希望一切都有道理,但如果没有,请说出来,我会尝试更好地解释它。
干杯。
答案 0 :(得分: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-pool。
答案 1 :(得分:2)
请注意,此错误的另一个原因可能是缺少mysql连接器!在Karaf shell中使用此命令安装:
install -s mvn:mysql / mysql-connector-java / 5.1.18