Can it have something to do with osgi settings via my POM ? Has someone ever used ibatis in camel via osgi ?
Mike 2011/3/23 Michael Dewitte <[email protected]> > Thanks Charles... I tried, but doesn't change anything... > > And even searching hard, i can't find any sample on the net with iBatis AND > osgi.... :-( > > Mike > > > 2011/3/23 Charles Moulliard <[email protected]> > >> This is where it should be located. >> >> Can you place the file in the following directory and retry : >> META-INF/spring/SqlMapConfig.xml ? >> >> On Wed, Mar 23, 2011 at 1:19 PM, Michael Dewitte >> <[email protected]> wrote: >> > oh, god... i saw using features:list that it was there, but hadn't >> noticed >> > it was "uninstalled"... pfff... Thanks for making me checking again ! >> > Now, it does deploy ! >> > But, as soon as the route is activated (dropping a file into the "input" >> > directory), I got an exception : >> > java.io.FileNotFoundException: class path resource [SqlMapConfig.xml] >> cannot >> > be opened because it does not exist >> > at >> > >> org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)[56:org.springframework.core:3.0.5.RELEASE] >> > at >> > >> org.apache.camel.component.ibatis.IBatisComponent.createSqlMapClient(IBatisComponent.java:88)[225:org.apache.camel.camel-ibatis:2.6.0] >> > at >> > >> org.apache.camel.component.ibatis.IBatisComponent.getSqlMapClient(IBatisComponent.java:104)[225:org.apache.camel.camel-ibatis:2.6.0] >> > at >> > >> org.apache.camel.component.ibatis.IBatisEndpoint.getSqlMapClient(IBatisEndpoint.java:77)[225:org.apache.camel.camel-ibatis:2.6.0] >> > As i noted in the previous post, the SqlMapConfig.xml is in the jar, at >> the >> > root of the jar... isn't it where it should be located ? >> > Thanks for your help ! >> > Mike >> > 2011/3/23 Charles Moulliard <[email protected]> >> >> >> >> Have you deployed the bundle camel-ibatis component on Smx4.x or Karaf >> ? >> >> >> >> On Wed, Mar 23, 2011 at 12:13 PM, Michael Dewitte >> >> <[email protected]> wrote: >> >> > Thx, >> >> > >> >> > thanks to your indications and the sample here : >> >> > I tried to go further. >> >> > >> >> > I made a bundle, using blueprint, in which I placed my blueprint and >> the >> >> > config files for ibatis. When I try to deploy it, I get an exception >> : >> >> > Caused by: org.apache.camel.FailedToCreateRouteException: Failed to >> >> > create >> >> > route route6 at: >>> To[ibatis:deleteUser?statementType=Delete] <<< >> in >> >> > route: Route[[From[file:activemq/input]] -> >> [To[file:activemq/outpu... >> >> > because of Failed to resolve endpoint: >> >> > ibatis://deleteUser?statementType=Delete due to: >> >> > org.osgi.service.blueprint.container.NoSuchComponentException: No >> >> > component >> >> > with id 'ibatis://deleteUser?statementType=Delete' could be found >> >> > >> >> > The structure of the jar is as follow : >> >> > |-SqlMapConfig.xml >> >> > |-Users.xml (the maps definitions) >> >> > |-OSGI-INF >> >> > |-blueprint >> >> > |-blueprint.xml >> >> > |-META-INF >> >> > |MANIFEST.MF >> >> > >> >> > >> >> > Here is my SqlMapConfig.xml : >> >> > ----------------------------------------------- >> >> > <sqlMapConfig> >> >> > <transactionManager type="JDBC" commitRequired="false"> >> >> > <dataSource type="SIMPLE"> >> >> > <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> >> >> > <property name="JDBC.ConnectionURL" >> >> > value="jdbc:mysql://localhost:3306/forem_1"/> >> >> > <property name="JDBC.Username" value="root"/> >> >> > <property name="JDBC.Password" value="mysql"/> >> >> > </dataSource> >> >> > </transactionManager> >> >> > >> >> > <sqlMap resource="User.xml"/> >> >> > </sqlMapConfig> >> >> > >> >> > Here is my Users.xml : >> >> > ---------------------------------------------- >> >> > <sqlMap> >> >> > <delete id="deleteUser"> >> >> > delete from transfert_outbound where correlationId = 2 >> >> > </delete> >> >> > </sqlMap> >> >> > >> >> > Here is my blueprint.xml : >> >> > ---------------------------------------------- >> >> > <blueprint >> >> > xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> > xsi:schemaLocation=" >> >> > http://www.osgi.org/xmlns/blueprint/v1.0.0 >> >> > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> >> >> > >> >> > <camelContext xmlns="http://camel.apache.org/schema/blueprint"> >> >> > <route> >> >> > <from uri="file:activemq/input"/> >> >> > <to uri="file:activemq/output"/> >> >> > >> >> > <setBody> >> >> > <simple> >> >> > NEW FileMovedEvent(file: ${file:name}, timestamp: >> >> > ${date:now:hh:MM:ss.SSS}) >> >> > </simple> >> >> > </setBody> >> >> > <to uri="log:events"/> >> >> > <to uri="ibatis:deleteUser?statementType=Delete"/> >> >> > </route> >> >> > </camelContext> >> >> > </blueprint> >> >> > >> >> > >> >> > and here is my 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"> >> >> > >> >> > <modelVersion>4.0.0</modelVersion> >> >> > >> >> > <parent> >> >> > <groupId>org.apache.servicemix.features</groupId> >> >> > <artifactId>features</artifactId> >> >> > <version>4.3.0</version> >> >> > </parent> >> >> > >> >> > <groupId>testing.servicemix.example</groupId> >> >> > <artifactId>ibatistest</artifactId> >> >> > <packaging>bundle</packaging> >> >> > <version>1.0-SNAPSHOT</version> >> >> > <name>iBatis test</name> >> >> > >> >> > <properties> >> >> > <!-- Camel --> >> >> > <camel-version>2.6.0</camel-version> >> >> > </properties> >> >> > >> >> > <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-ibatis</artifactId> >> >> > <version>${camel-version}</version> >> >> > </dependency> >> >> > </dependencies> >> >> > >> >> > <build> >> >> > <plugins> >> >> > <plugin> >> >> > <groupId>org.apache.felix</groupId> >> >> > <artifactId>maven-bundle-plugin</artifactId> >> >> > <configuration> >> >> > <instructions> >> >> > >> >> > <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> >> >> > >> >> > <Import-Package>*,org.apache.camel.osgi</Import-Package> >> >> > >> >> > >> <Private-Package>org.apache.servicemix.examples.camel</Private-Package> >> >> > </instructions> >> >> > </configuration> >> >> > </plugin> >> >> > </plugins> >> >> > >> >> > </build> >> >> > >> >> > </project> >> >> > >> >> > Any clue ??? >> >> > >> >> > Thx in advance, >> >> > >> >> > Mike >> >> > >> >> > >> >> > 2011/3/22 Charles Moulliard <[email protected]> >> >> > >> >> >> Hi Michael, >> >> >> >> >> >> Yeap, you must create a bundle containing your camel route, myibatis >> >> >> config files and place them in a folder which is in the classpath of >> >> >> the bundle. >> >> >> >> >> >> Regards, >> >> >> >> >> >> Charles >> >> >> >> >> >> >> >> >> >> >> >> On Tue, Mar 22, 2011 at 3:25 PM, Michael Dewitte >> >> >> <[email protected]> wrote: >> >> >> > Thanks Charles, >> >> >> > >> >> >> > but as it's deployed into karaf, does it means I have to create an >> >> >> > osgi >> >> >> > bundle, with the sqlmap in it (and the xml def of my CamelContext >> too >> >> >> > ?) >> >> >> ? >> >> >> > This particular part is not clear to me, and if i find info on the >> >> >> > ibatis >> >> >> / >> >> >> > mybatis part, i can't find this precise detail on how to package / >> >> >> > deploy >> >> >> it >> >> >> > to servicemix... Until now, I only had to deploy the CamelContext >> >> >> > using >> >> >> > blueprint directly via the deploy folder... >> >> >> > >> >> >> > Thanks for your help, >> >> >> > >> >> >> > Mike >> >> >> > >> >> >> > >> >> >> > 2011/3/22 Charles Moulliard <[email protected]> >> >> >> > >> >> >> >> Hi Mike, >> >> >> >> >> >> >> >> According to the doc, >> >> >> >> >> >> >> >> This component will by default load the MyBatis SqlMapConfig file >> >> >> >> from >> >> >> >> the root of the classpath and expected named as SqlMapConfig.xml. >> >> >> >> If the file is located in another location, you would have to >> >> >> >> configure the configurationUri option on the MyBatisComponent >> >> >> >> component. >> >> >> >> >> >> >> >> Regards, >> >> >> >> >> >> >> >> Charles Moulliard >> >> >> >> >> >> >> >> Sr. Principal Solution Architect - FuseSource >> >> >> >> Apache Committer >> >> >> >> >> >> >> >> Blog : http://cmoulliard.blogspot.com >> >> >> >> Twitter : http://twitter.com/cmoulliard >> >> >> >> Linkedin : http://www.linkedin.com/in/charlesmoulliard >> >> >> >> Skype: cmoulliard >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Tue, Mar 22, 2011 at 2:25 PM, Michael Dewitte >> >> >> >> <[email protected]> wrote: >> >> >> >> > Hi, >> >> >> >> > >> >> >> >> > one question that seems to be borderline betwwen Camel and SMX >> : >> >> >> >> > I want to raise some events (posting messages on a queue) based >> on >> >> >> events >> >> >> >> > occured on table in a database. So, in fact, I want to react >> upon >> >> >> insert >> >> >> >> in >> >> >> >> > a table. To do so, I thought about a route, using a timer then >> a >> >> >> MyBatis >> >> >> >> > then posting to a queue. >> >> >> >> > >> >> >> >> > the route could look like this : >> >> >> >> > <camelContext xmlns=" >> http://camel.apache.org/schema/blueprint"> >> >> >> >> > <route> >> >> >> >> > <from uri="timer://pollTheDatabase?delay=30000"/> >> >> >> >> > <to >> >> >> >> > >> >> >> >> > >> uri="mbatis:selectAllNewlyInsertedPeople?statementType=QueryForList"/> >> >> >> >> > <to uri="activemq://events" /> >> >> >> >> > </route> >> >> >> >> > </camelContext> >> >> >> >> > >> >> >> >> > I haven't found config sample using SpringConfig nor >> >> >> >> > blueprints.... My >> >> >> >> > question is : where do I define the SQLmap... normally it >> should >> >> >> >> > be >> >> >> >> defined >> >> >> >> > in another xml file, if I was building the route in java... but >> >> >> >> > how do >> >> >> if >> >> >> >> I >> >> >> >> > want to use a route configured with blueprint ? >> >> >> >> > >> >> >> >> > Or maybe am I wrong and should I use a totally different way ? >> >> >> >> > >> >> >> >> > Thanks for any help, >> >> >> >> > >> >> >> >> > Mike >> >> >> >> > >> >> >> >> >> >> >> > >> >> >> >> >> > >> > >> > >> > >
