camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vadim Chekan" <kot.bege...@gmail.com>
Subject Re: MS SQL Message Service endpoint
Date Mon, 07 Jul 2008 01:45:52 GMT
I've set log4j level to TRACE and with camel-1.4 (which has more
debuging info) I got the following:
DEBUG ResolverUtil                   - Searching for implementations
of org.apache.camel.builder.RouteBuilder in packages:
[org.mycompany.test]
TRACE ResolverUtil                   - Searching for: is assignable to
RouteBuilder in package: org/mycompany/test using classloader:
java.net.URLClassLoader@13bad12
TRACE ResolverUtil                   - It's not an osgi bundle classloader
DEBUG ResolverUtil                   - Found: []

What's the deal with osgi?

Vadim.

On Sun, Jul 6, 2008 at 6:27 PM, Vadim Chekan <kot.begemot@gmail.com> wrote:
> Good, tutorial helped a little bit.
> Now I've stuck with this:
> DEBUG ResolverUtil                   - Searching for implementations
> of org.apache.camel.builder.RouteBuilder in packages:
> [org.mycompany.test]
> DEBUG ResolverUtil                   - Found: []
>
> I've compiled and put to lib/optional/MyTest.jar the following code:
> ========================================================
> package org.mycompany.test;
>
> import org.apache.camel.builder.RouteBuilder;
>
> public class Mover1 extends RouteBuilder {
>        public void configure() throws Exception {
>                from("messagemq:vadim1").to("messagemq:vadim2");
>        }
> }
> ======================================================
>
> Any clues why my class in not found?
>
> Vadim.
>
> On Fri, Jul 4, 2008 at 12:24 AM, Claus Ibsen <ci@silverbullet.dk> wrote:
>> Hi Vlad
>>
>> Ah you are digging into the auto discovery feature from the <package> tag.
>> E.g. from the tutorial, where there is a <package> tag in the camel context.
>>
>>    <!-- declare a camel context that scans for classes that is RouteBuilder
>>         in the package org.apache.camel.example.server -->
>>    <camel:camelContext id="camel">
>>        <camel:package>org.apache.camel.example.server</camel:package>
>>        <!-- enable JMX connector so we can connect to the server and browse mbeans
-->
>>        <!-- Camel will log at INFO level the service URI to use for connecting
with jconsole -->
>>        <camel:jmxAgent id="agent" createConnector="true"/>
>>    </camel:camelContext>
>>
>> Yes it will look for classes in the package that extends RouteBuilder.
>> The RouteBuilder has a configure() method where you define the camel routing in Java
DSL.
>>
>> You can check out the tutorial:
>> http://activemq.apache.org/camel/tutorials.html
>>
>> So this is a good way to "kick-start" your camel context that its spring configured
but you can use the Java DSL that is more powerful than XML. However Camel supports both,
and mix/match.
>>
>>
>>
>> Med venlig hilsen
>>
>> Claus Ibsen
>> ......................................
>> Silverbullet
>> Skovsgårdsvænget 21
>> 8362 Hørning
>> Tlf. +45 2962 7576
>> Web: www.silverbullet.dk
>>
>> -----Original Message-----
>> From: Vadim Chekan [mailto:kot.begemot@gmail.com]
>> Sent: 4. juli 2008 02:05
>> To: camel-user@activemq.apache.org
>> Subject: Re: MS SQL Message Service endpoint
>>
>> Thanks Claus,
>> I'm slowly digging through it.
>> Following things are still not clear to me:
>> What are the conventions on classes in the package? Should class
>> implement main() method to be called? Or any class inherited from
>> RouteBuilder will be instaniated? I'm trying to understand how camel
>> decides from "package" which class and method to call.
>>
>> Vadim.
>>
>> On Wed, Jul 2, 2008 at 10:33 PM, Claus Ibsen <ci@silverbullet.dk> wrote:
>>> Hi
>>>
>>> Created ticket CAMEL-658 for improving the wiki documentation.
>>>
>>> Thanks for reporting your troubles with it, we want to improve it.
>>>
>>>
>>> Med venlig hilsen
>>>
>>> Claus Ibsen
>>> ......................................
>>> Silverbullet
>>> Skovsgårdsvænget 21
>>> 8362 Hørning
>>> Tlf. +45 2962 7576
>>> Web: www.silverbullet.dk
>>>
>>> -----Original Message-----
>>> From: Claus Ibsen [mailto:ci@silverbullet.dk]
>>> Sent: 3. juli 2008 07:29
>>> To: camel-user@activemq.apache.org
>>> Subject: RE: MS SQL Message Service endpoint
>>>
>>> Hi Vlad
>>>
>>> Thanks for the investigations. Yes there could be an odd issue with the JDBC
component, as I would assume it could consume from the database = reading.
>>>
>>> As a work around or how to get it working, you can get an endpoint in front to
kick it off.
>>>
>>> from("timer://kickoff?delay=10000").setBody("select * from xxxx").to("jdbc:msServiceBroker").to("activemq:aspcust1");
>>>
>>>
>>> This is from a unit test in camel-jdbc. The timer fires every 10th second and
queries the database and send the result to the mock. In your case the activemq instead.
>>>
>>>                from("timer://kickoff?period=10000").
>>>                    setBody(constant("select * from customer")).
>>>                    to("jdbc:testdb").
>>>                    to("mock:result");
>>>
>>> Notice that the result is a list of map objects, each row is a map with the columnname
as the key. From another unit test:
>>>
>>>        // assertions of the response
>>>        assertNotNull(out);
>>>        assertNotNull(out.getOut());
>>>        ArrayList<HashMap<String, Object>> data = out.getOut().getBody(ArrayList.class);
>>>        assertNotNull("out body could not be converted to an ArrayList - was:
"
>>>            + out.getOut().getBody(), data);
>>>        assertEquals(2, data.size());
>>>        HashMap<String, Object> row = data.get(0);
>>>        assertEquals("cust1", row.get("ID"));
>>>        assertEquals("jstrachan", row.get("NAME"));
>>>        row = data.get(1);
>>>        assertEquals("cust2", row.get("ID"));
>>>        assertEquals("nsandhu", row.get("NAME"));
>>>
>>> Med venlig hilsen
>>>
>>> Claus Ibsen
>>> ......................................
>>> Silverbullet
>>> Skovsgårdsvænget 21
>>> 8362 Hørning
>>> Tlf. +45 2962 7576
>>> Web: www.silverbullet.dk
>>>
>>> -----Original Message-----
>>> From: Vadim Chekan [mailto:kot.begemot@gmail.com]
>>> Sent: 3. juli 2008 01:33
>>> To: camel-user@activemq.apache.org
>>> Subject: Re: MS SQL Message Service endpoint
>>>
>>> Ok, I got this one. My ActiveMQ installation does not contain camel-jdbc.jar.
>>> It runs fine now but it gives me "Failed to execute main task. Reason:
>>> java.lang.NoClassDefFoundError:
>>> org/springframework/aop/support/AopUtils".
>>> Copied spring-aop-2.5.1.jar
>>>
>>> Ok, now:
>>> Caused by: org.apache.camel.RuntimeCamelException: A JDBC Consumer would be the
>>> server side of database! No such support here at
>>> org.apache.camel.component.jdbc.JdbcEndpoint.createConsumer(JdbcEndpoint.java:56)
>>>
>>> Hmm, I remember seeing this exception in the source code but I do not
>>> understand it. why <from uri="jdbc:msServiceBroker" /> tries to create
>>> a consumer. I thought that "from" is a message producer, right?
>>>
>>>
>>> On Wed, Jul 2, 2008 at 12:33 PM, Vadim Chekan <kot.begemot@gmail.com> wrote:
>>>> Here is my progress:
>>>> First of all it complained about DriverManagerDataSource class so I've
>>>> downloaded spring-jdbc-2.5.1.jar and put it to lib/optional
>>>> Now I'm getting
>>>> =======================================
>>>> Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be
found
>>>> for: jdbc:msServiceBroker
>>>>        at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelCo
>>>> =======================================
>>>>
>>>> My configuration is:
>>>> ===============================================================
>>>>   <camelContext id="camel"
>>>> xmlns="http://activemq.apache.org/camel/schema/spring">
>>>>           <route>
>>>>                   <from uri="jdbc:msServiceBroker" />
>>>>                   <to uri="activemq:aspcust1" />
>>>>           </route>
>>>>   </camelContext>
>>>>
>>>>        <bean id="msServiceBroker"
>>>> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>>>>                <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
>>>>                <property name="url"
>>>> value="jdbc:jtds:sqlserver://aspcust1/LogQueue;instance=main"/>
>>>>                <property name="username" value="****"/>
>>>>                <property name="password" value="****"/>
>>>>        </bean>
>>>> ===============================================================
>>>>
>>>> I thought that it it the way this thing works: after jdbc uri you
>>>> specify a bean, but apparently I got it wrong. I'm trying to define
>>>> endpoint explicitly now withing camel context.
>>>> Any help please?
>>>>
>>>> BTW: there is an error in schema location in default configuration
>>>> file: http://activemq.apache.org/schema/core/activemq-core.xsd does
>>>> not exist. I had to change it to
>>>> http://activemq.apache.org/schema/core/activemq-core-5.1.0.xsd to make
>>>> my Visual Studio hints working ;)
>>>>
>>>> --
>>>> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
>>>> is explicitly specified
>>>>
>>>
>>>
>>>
>>> --
>>> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
>>> is explicitly specified
>>>
>>
>>
>>
>> --
>> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
>> is explicitly specified
>>
>
>
>
> --
> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
> is explicitly specified
>



-- 
>From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
is explicitly specified

Mime
View raw message