I want to consume message from my AMQ 7 queue and insert it into postgresql database. I am using spring camel. So far, I've done this
<route id="simple-route">
<from uri="amqp:queue:tes"/>
<log id="route-log" message=">>> ${body} testing message in body"/>
<to uri="amqp:queue:simpleQueue"/>
<log message="${in.body}" />
</route>
<bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
<property name="connectionFactory">
<bean class="org.apache.qpid.jms.JmsConnectionFactory">
<property name="username" value="admin" />
<property name="password" value="password"/>
<property name="remoteURI" value="amqp://192.168.150.5:5672" />
</bean>
</property>
</bean>
I am confusing how to write inside that uri to insert into postgre. My data in queue is json type.
To insert your data directly into DB you have an option of using camel sql component
<to uri="sql:insert into postgre_table (record_id, record_text) values (:#${header.record_id}, :#${header.record_text})?dataSource=#PostgreDataSource"/>
and your data source should looks like
<bean id="PostgreDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://localhost:5432/postgre"/>
<property name="username" value="user"/>
<property name="password" value="password"/>
</bean>