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:27:59 GMT
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

Mime
View raw message