Hello,

I've got some hard time trying to use a route using ibatis component and
deployed on karaf (in fact, servicemix).

I made a bundle, using blueprint, in which I placed my blueprint and the
config files for ibatis.

Deploy is just fine, but  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]

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

Reply via email to