When i deploy my camel-project as bundle on Apache Felix Karaf and start it, in log i see exception java.sql.SQLException: No suitable driver. And my bundle not work properly .
My bundle uses camel-ibatis component. camel-ibatis through SqlMapConfog.xml uses MSSQL jdbc driver for connect to db. All drivers and component deployed on Karaf. Bundle mssqlserver.jar and other jar for driver deploy in wrapped mode and export package com.microsoft.jdbc.sqlserver. May be, add import com.microsoft.jdbc.sqlserver dependency to camel-ibatis component manifest? Or to component "Apache ServiceMix Bundles: ibatis-sqlmap-2.3.4.726 (2.3.4.726_2)"? How manage dependencies for JDBC drivers on OSGI environment? Camel ver. 2.1.0. db.properties used by SqlMapConfig.xml driver = com.microsoft.jdbc.sqlserver.SQLServerDriver url = jdbc:microsoft:sqlserver://localhost:1433;databaseName=SMB_DB;selectMethod=cursor username = sa password = 123 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <properties> <camel-version>2.1.0</camel-version> <log4j-version>1.2.14</log4j-version> <bundle.symbolicName>important-notifier</bundle.symbolicName> <bundle.namespace>ua.mti.integration</bundle.namespace> </properties> <modelVersion>4.0.0</modelVersion> <groupId>ua.mti.integration</groupId> <artifactId>important-notifier</artifactId> <packaging>bundle</packaging> <version>0.1</version> <name>${bundle.symbolicName} [${bundle.namespace}]</name> <url>http://mti.ua</url> <dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spring</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-osgi</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.osgi.core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-xmpp</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-ibatis</artifactId> <version>${camel-version}</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssqlserver</artifactId> <version>1</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>msbase</artifactId> <version>1</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>msutil</artifactId> <version>1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j-version}</version> </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <plugins> <plugin> <groupId>org.ops4j</groupId> <artifactId>maven-pax-plugin</artifactId> <version>1.4</version> <extensions>true</extensions> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>1.4.3</version> <configuration> <instructions> <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName> <Bundle-Version>${pom.version}</Bundle-Version> <Import-Package> org.apache.commons.logging, org.apache.camel, org.apache.camel.component, org.apache.camel.component.ibatis, org.apache.camel.component.xmpp, com.microsoft.jdbc.sqlserver, ua.mti.integration.important_notifier, * </Import-Package> <Export-Package>ua.mti.integration.important_notifier</Export-Package> <Private-Package>ua.mti.integration.important_notifier.iBatisMappedClasses.*</Private-Package> <Include-Resource>src/main/resources</Include-Resource> </instructions> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <!-- allows the route to be ran via 'mvn camel:run' --> <plugin> <groupId>org.apache.camel</groupId> <artifactId>camel-maven-plugin</artifactId> <version>${camel-version}</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>src/main/assembly/src.xml</descriptor> </descriptors> </configuration> </plugin> </plugins> </build> </project> Headers for installed JDBC bundle ka...@root> osgi:headers 137 wrap_file_c__ms_jdbc_lib_mssqlserver.jar (137) ---------------------------------------------- Bnd-LastModified = 1265207903237 Bundle-ManifestVersion = 2 Bundle-Name = wrap_file_c__ms_jdbc_lib_mssqlserver.jar Bundle-SymbolicName = wrap_file_c__ms_jdbc_lib_mssqlserver.jar Bundle-Version = 0 Created-By = 1.5.0_17 (Sun Microsystems Inc.) Export-Package = com.microsoft.jdbc.sqlserver;uses:="com.microsoft.jdbc.sqlserver.tds,com.microsoft.util,com.microsoft.j dbc.base",com.microsoft.jdbc.sqlserver.tds;uses:="com.microsoft.jdbc.base,com.microsoft.util,com.microsoft.jdbc.sqlserve r",com.microsoft.jdbcx.sqlserver;uses:="javax.naming,com.microsoft.jdbc.base,com.microsoft.jdbcx.base,com.microsoft.jdbc .sqlserver,javax.sql,javax.transaction.xa,com.microsoft.jdbc.sqlserver.tds" Generated-By-Ops4j-Pax-From = wrap:file:c:/ms/jdbc/lib/mssqlserver.jar Import-Package = com.microsoft.jdbc.base;resolution:=optional,com.microsoft.jdbc.sqlserver;resolution:=optional,com.micr osoft.jdbc.sqlserver.tds;resolution:=optional,com.microsoft.jdbcx.base;resolution:=optional,com.microsoft.jdbcx.sqlserve r;resolution:=optional,com.microsoft.util;resolution:=optional,javax.naming;resolution:=optional,javax.sql;resolution:=o ptional,javax.transaction.xa;resolution:=optional Manifest-Version = 1.0 Originally-Created-By = 1.2.2 (Sun Microsystems Inc.) Tool = Bnd-0.0.313 ka...@root> Log in Karaf, where my bundle starting: 16:00:52,990 | INFO | l Console Thread | ultOsgiApplicationContextCreator | ultOsgiApplicationContextCreator 67 | Discovered configurations {osgibundle:/META-INF/spring/*.xml} in bundle [important-notifier [ua.mti.integration] (important-notifier)] 16:00:52,990 | INFO | xtenderThread-23 | OsgiBundleXmlApplicationContext | pport.AbstractApplicationContext 411 | Refreshing org.springframework.osgi.context.support.osgibundlexmlapplicationcont...@173a94f: display name [OsgiBundleXmlApplicationContext(bundle=important-notifier, config=osgibundle:/META-INF/spring/*.xml)]; startup date [Thu Feb 04 16:00:52 EET 2010]; root of context hierarchy 16:00:52,990 | INFO | xtenderThread-23 | OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext 359 | Unpublishing application context OSGi service for bundle important-notifier [ua.mti.integration] (important-notifier) 16:00:53,005 | INFO | xtenderThread-23 | XmlBeanDefinitionReader | tory.xml.XmlBeanDefinitionReader 323 | Loading XML bean definitions from URL [bundle://134.0:0/META-INF/spring/camel-context.xml] 16:00:53,052 | INFO | xtenderThread-23 | OsgiBundleXmlApplicationContext | pport.AbstractApplicationContext 426 | Bean factory for application context [org.springframework.osgi.context.support.osgibundlexmlapplicationcont...@173a94f]: org.springframework.beans.factory.support.defaultlistablebeanfact...@160297a 16:00:53,052 | INFO | xtenderThread-23 | WaiterApplicationContextExecutor | WaiterApplicationContextExecutor 252 | No outstanding OSGi service dependencies, completing initialization for OsgiBundleXmlApplicationContext(bundle=important-notifier, config=osgibundle:/META-INF/spring/*.xml) 16:00:53,068 | WARN | xtenderThread-24 | CamelContextFactoryBean | l.spring.CamelContextFactoryBean 881 | Using a packages element to specify packages to search has been deprecated. Please use a packageScan element instead. 16:00:53,130 | INFO | xtenderThread-24 | DefaultListableBeanFactory | pport.DefaultListableBeanFactory 414 | Pre-instantiating singletons in org.springframework.beans.factory.support.defaultlistablebeanfact...@160297a: defining beans [camelContext:beanPostProcessor,camelContext,ibatis,helper]; root of factory hierarchy 16:00:53,130 | INFO | xtenderThread-24 | DefaultCamelContext | e.camel.impl.DefaultCamelContext 1005 | Apache Camel 2.1.0 (CamelContext:camelContext) is starting 16:00:53,130 | INFO | xtenderThread-24 | DefaultCamelContext | e.camel.impl.DefaultCamelContext 1431 | JMX enabled. Using DefaultManagedLifecycleStrategy. 16:00:53,443 | INFO | xtenderThread-24 | DefaultCamelContext | e.camel.impl.DefaultCamelContext 997 | Apache Camel 2.1.0 (CamelContext:camelContext) started 16:00:53,443 | INFO | xtenderThread-24 | OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext 327 | Publishing application context as OSGi service with properties {org.springframework.context.service.name=important-notifier, Bundle-SymbolicName=important-notifier, Bundle-Version=0.1.0} 16:00:53,443 | INFO | xtenderThread-24 | ContextLoaderListener | BundleApplicationContextListener 45 | Application context successfully refreshed (OsgiBundleXmlApplicationContext(bundle=important-notifier, config=osgibundle:/META-INF/spring/*.xml)) 16:00:54,677 | WARN | IBatisComponent | faultPollingConsumerPollStrategy | faultPollingConsumerPollStrategy 43 | Consumer Consumer[ibatis://selectFailureEvent?delay=30000&initialDelay=1000] could not poll endpoint: ibatis://selectFailureEvent?delay=30000&initialDelay=1000 caused by: No suitable driver java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(DriverManager.java:545) at java.sql.DriverManager.getConnection(DriverManager.java:171) at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:580) at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:222) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:94) at org.apache.camel.component.ibatis.strategy.DefaultIBatisProcessingStategy.poll(DefaultIBatisProcessingStategy.java:56) at org.apache.camel.component.ibatis.IBatisPollingConsumer.poll(IBatisPollingConsumer.java:146) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) Thanks a lot for a answer! -- View this message in context: http://old.nabble.com/OSGI-%2B-camel-ibatis%3A-java.sql.SQLException%3A-No-suitable-driver-tp27452216p27452216.html Sent from the Camel - Users mailing list archive at Nabble.com.
