apache servicemix 无法为 apache dbcp 加载 jdbc 驱动程序
apache servicemix cannot load jdbc driver for apache dbcp
我有一个 servicemix bundle
尝试 load jdbc driver
但失败并显示消息
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>
你见过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">
我通过添加 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 时,请始终注意 bundle/jar 文件的 META-INF/MANIFEST.MF
以查看它导入(Import-Package
)和导出的内容(Export-Package
)
如下图karaf-console
dbcp bundle 的截图,com.mysql.jdbc
pakage 是为servicemix dbcp 导入的
<bundle>wrap:mvn:commons-dbcp/commons-dbcp/1.4$Import-Package=com.mysql.jdbc</bundle>
应该会出现与屏幕截图中相同的导入,但徒劳无功。
我有一个 servicemix bundle
尝试 load jdbc driver
但失败并显示消息
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>
你见过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">
我通过添加 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 时,请始终注意 bundle/jar 文件的 META-INF/MANIFEST.MF
以查看它导入(Import-Package
)和导出的内容(Export-Package
)
如下图karaf-console
dbcp bundle 的截图,com.mysql.jdbc
pakage 是为servicemix dbcp 导入的
<bundle>wrap:mvn:commons-dbcp/commons-dbcp/1.4$Import-Package=com.mysql.jdbc</bundle>
应该会出现与屏幕截图中相同的导入,但徒劳无功。