camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: BeanFactoryAware (Spring)
Date Tue, 18 Mar 2008 15:57:05 GMT
BTW I've just raised a JIRA as we should be able to catch this error
and give a useful error message...
http://issues.apache.org/activemq/browse/CAMEL-390


On 18/03/2008, James Strachan <james.strachan@gmail.com> wrote:
> Since the <camelContext> overrides the default XML namespace - moving
>  it to the bottom of the file should fix it.
>
>
>  On 18/03/2008, cmoulliard <cmoulliard@gmail.com> wrote:
>  >
>  >  Here is the camel context James :
>  >
>  >  <?xml version="1.0" encoding="UTF-8"?>
>  >  <beans xmlns="http://www.springframework.org/schema/beans"
>  >         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  >         xsi:schemaLocation="
>  >        http://www.springframework.org/schema/beans
>  >  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
>  >        http://activemq.apache.org/camel/schema/spring
>  >  http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>  >
>  >         <camelContext id="camel" useJmx="false" mbeanServer="mbeanServer"
>  >                 xmlns="http://activemq.apache.org/camel/schema/spring">
>  >                 <package>org.apache.camel.example.spring</package>
>  >         </camelContext>
>  >
>  >         <!-- lets configure the default ActiveMQ broker URL -->
>  >         <bean id="test-jms"
>  >                 class="org.apache.camel.component.jms.JmsComponent">
>  >                 <property name="connectionFactory">
>  >                         <bean
>  >                                 class="org.apache.activemq.ActiveMQConnectionFactory">
>  >                                 <property name="brokerURL"
>  >                                         value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"
>  >  />
>  >                         </bean>
>  >                 </property>
>  >         </bean>
>  >
>  >         <bean id="Converter" class="com.xpectis.transform.Converter" />
>  >
>  >
>  >         <!-- DB connection and persistence layer -->
>  >
>  >         <!-- DataSource Definition -->
>  >         <bean id="dataSource"
>  >                 class="org.apache.commons.dbcp.BasicDataSource"
>  >                 destroy-method="close">
>  >                 <property name="driverClassName">
>  >                         <value>com.mysql.jdbc.Driver</value>
>  >                 </property>
>  >                 <property name="url">
>  >                         <value>jdbc:mysql:///test</value>
>  >                 </property>
>  >                 <property name="username">
>  >                         <value>root</value>
>  >                 </property>
>  >                 <property name="password">
>  >                         <value></value>
>  >                 </property>
>  >         </bean>
>  >
>  >         <!-- Hibernate SessionFactory Definition -->
>  >         <bean id="sessionFactory"
>  >                 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
>  >                 <property name="mappingResources">
>  >                         <list>
>  >                                 <value>
>  >                                         com/xpectis/model/order.hbm.xml
>  >                                 </value>
>  >                         </list>
>  >                 </property>
>  >
>  >                 <property name="hibernateProperties">
>  >                         <props>
>  >                                 <prop key="hibernate.dialect">
>  >                                         org.hibernate.dialect.MySQLDialect
>  >                                 </prop>
>  >                                 <prop key="hibernate.show_sql">true</prop>
>  >                                 <prop key="hibernate.format_sql">true</prop>
>  >                                 <prop key="hibernate.default_schema">test</prop>
>  >                                 <prop key="hibernate.cglib.use_reflection_optimizer">
>  >                                         true
>  >                                 </prop>
>  >                                 <prop key="hibernate.cache.provider_class">
>  >                                         org.hibernate.cache.HashtableCacheProvider
>  >                                 </prop>
>  >                         </props>
>  >                 </property>
>  >
>  >                 <property name="dataSource">
>  >                         <ref bean="dataSource" />
>  >                 </property>
>  >         </bean>
>  >
>  >         <!-- Hibernate Template Defintion
>  >                 <bean id="hibernateTemplate"
>  >  class="org.springframework.orm.hibernate3.HibernateTemplate">
>  >
>  >                 <property name="sessionFactory"><ref bean="sessionFactory"/></property>
>  >
>  >                 <property name="jdbcExceptionTranslator"><ref
>  >  bean="jdbcExceptionTranslator"/></property>
>  >                 </bean> -->
>  >
>  >
>  >         <!-- Catalog DAO Definition: Hibernate implementation -->
>  >         <bean id="orderDAO"
>  >                 class="com.xpectis.dao.OrderDAOHibernateImpl">
>  >                 <property name="sessionFactory">
>  >                         <ref bean="sessionFactory" />
>  >                 </property>
>  >         </bean>
>  >
>  >
>  >         <!-- Hibernate Transaction Manager Definition -->
>  >         <bean id="transactionManager"
>  >                 class="org.springframework.orm.hibernate3.HibernateTransactionManager">
>  >                 <property name="sessionFactory">
>  >                         <ref local="sessionFactory" />
>  >                 </property>
>  >         </bean>
>  >
>  >         <!-- Spring Data Access Exception Translator Defintion -->
>  >         <bean id="jdbcExceptionTranslator"
>  >
>  >  class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
>  >                 <property name="dataSource">
>  >                         <ref bean="dataSource" />
>  >                 </property>
>  >         </bean>
>  >
>  >         <!--
>  >                 <bean id="Order" class="com.xpectis.model.Order" />
>  >                 <bean id="registry"
>  >  class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">
>  >                 <property name="port" value="1099" />
>  >                 </bean>
>  >                 <bean id="serverConnector"
>  >  class="org.springframework.jmx.support.ConnectorServerFactoryBean"
>  >  depends-on="registry">
>  >                 <property name="objectName" value="connector:name=rmi" />
>  >                 <property name="serviceUrl"
>  >  value="service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi" />
>  >                 <property name="threaded" value="true" />
>  >                 <property name="daemon" value="true" />
>  >                 </bean>
>  >         -->
>  >
>  >  </beans>
>  >
>  >
>  >
>  >
>  >  James.Strachan wrote:
>  >  >
>  >  > Any chance you could show us the whole spring XML file? Am wondering
>  >  > if its something to do with namespaces?
>  >  >
>  >  > On 18/03/2008, cmoulliard <cmoulliard@gmail.com> wrote:
>  >  >>
>  >  >>  Hi,
>  >  >>
>  >  >>  I try from one of my java class to inject an HibernateDAOImplementation
>  >  >>  defined as a bean in the CamelContext file. Unfortunately, I receive
a
>  >  >> null
>  >  >>  pointer exception at the following line :
>  >  >>
>  >  >>  orderDAO = (OrderDAOHibernateImpl)this.beanFactory.getBean("orderDAO");
>  >  >>
>  >  >>  the beanFactory object is null
>  >  >>
>  >  >>  import org.springframework.beans.BeansException;
>  >  >>  import org.springframework.beans.factory.BeanFactory;
>  >  >>  import org.springframework.beans.factory.BeanFactoryAware;
>  >  >>  import org.springframework.dao.DataIntegrityViolationException;
>  >  >>
>  >  >>  import com.xpectis.dao.OrderDAO;
>  >  >>  import com.xpectis.dao.OrderDAOHibernateImpl;
>  >  >>  import com.xpectis.model.Order;
>  >  >>
>  >  >>  public class SaveOrder implements BeanFactoryAware {
>  >  >>
>  >  >>         private BeanFactory beanFactory;
>  >  >>         private OrderDAO orderDAO;
>  >  >>
>  >  >>         public SaveOrder() {
>  >  >>         }
>  >  >>
>  >  >>         public void save(Order order) {
>  >  >>
>  >  >>
>  >  >>                 orderDAO =
>  >  >> (OrderDAOHibernateImpl)this.beanFactory.getBean("orderDAO");
>  >  >>
>  >  >>                 try {
>  >  >>                         this.orderDAO.addOrder(order);
>  >  >>                         System.out.println("Order saved : " +
>  >  >> order.toString());
>  >  >>                 } catch (DataIntegrityViolationException de) {
>  >  >>                         System.out.println("Could not save product,
>  >  >> duplicate product id");
>  >  >>                 } catch (Exception e) {
>  >  >>                         System.out.println("Could not save product "
+
>  >  >> e.toString());
>  >  >>                 }
>  >  >>         }
>  >  >>
>  >  >>         public void setBeanFactory(BeanFactory beanFactory) {
>  >  >>                 this.beanFactory = beanFactory;
>  >  >>         }
>  >  >>
>  >  >>         public OrderDAO getOrderDAO() {
>  >  >>                 return orderDAO;
>  >  >>         }
>  >  >>
>  >  >>         public void setOrderDAO(OrderDAO orderDAO) {
>  >  >>                 this.orderDAO = orderDAO;
>  >  >>         }
>  >  >>
>  >  >>  }
>  >  >>
>  >  >>  Here is the camelcontext file where my bean is declared.
>  >  >>
>  >  >>         <!-- Catalog DAO Definition: Hibernate implementation -->
>  >  >>         <bean id="orderDAO"
>  >  >>                 class="com.xpectis.dao.OrderDAOHibernateImpl">
>  >  >>                 <property name="sessionFactory">
>  >  >>                         <ref bean="sessionFactory" />
>  >  >>                 </property>
>  >  >>         </bean>
>  >  >>
>  >  >>
>  >  >>  When this code runs in Spring context, it works. So, where is the issue
>  >  >> with
>  >  >>  Camel ??
>  >  >>
>  >  >>  Regards,
>  >  >>
>  >  >>  Charles
>  >  >>
>  >  >>
>  >  >>  --
>  >  >>  View this message in context:
>  >  >> http://www.nabble.com/BeanFactoryAware-%28Spring%29-tp16122107s22882p16122107.html
>  >  >>  Sent from the Camel - Users mailing list archive at Nabble.com.
>  >  >>
>  >  >>
>  >  >
>  >  >
>  >  > --
>  >  > James
>  >  > -------
>  >  > http://macstrac.blogspot.com/
>  >  >
>  >  > Open Source Integration
>  >  > http://open.iona.com
>  >  >
>  >  >
>  >
>  >
>  > --
>  >  View this message in context: http://www.nabble.com/BeanFactoryAware-%28Spring%29-tp16122107s22882p16124218.html
>  >
>  > Sent from the Camel - Users mailing list archive at Nabble.com.
>  >
>  >
>
>
>  --
>  James
>  -------
>  http://macstrac.blogspot.com/
>
>  Open Source Integration
>  http://open.iona.com
>


-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com

Mime
View raw message