Hi.

I've been trying for the last few days to get Ode to work with ServiceMix's
latest version.

I tried Ode 1.1, but quickly ended up with this exception:

java.lang.NoSuchMethodError:
org.apache.geronimo.connector.outbound.GenericConnectionManager.<init> ....

One of my colleagues had the same problem a few weeks ago, and got the
following answer, which he didn't have time to implement before moving on to
other projects :
"this is most probably due to incompatible versions of the geronimo libs
used by SM 3.2.x and Ode 1.1.1. This has been addressed in
https://issues.apache.org/jira/browse/ODE-224 but has not been released yet.
Would be great if you could give the development trunk in SVN a try. Best,
Tammo van Lessen"

So this is exactly what I did. After many repeated attemps, I successfully
built Ode 1.2 from the source code using the web guide, but have now
apparently circled right back to where I started. Here is the complete stack
trace:

Starting Apache ServiceMix ESB: 3.2.1

Loading Apache ServiceMix from servicemix.xml on the CLASSPATH
Caught: org.springframework.beans.factory.BeanCreationException:
  Error creating bean with name 'jndi' defined in class path resource
[jndi.xml]:
  Cannot resolve reference to bean 'jndiEntries' while setting bean property
'entries';

nested exception is org.springframework.beans.factory.BeanCreationException:

   Error creating bean with name 'jndiEntries':
   Cannot create inner bean 'odeDataSource' of type
[org.jencks.factory.ConnectionFactoryFactoryBean] while setting bean
property'sourceMap' with key [TypedStringValue: value
[java:comp/env/jdbc/ode], target type [null]];

nested exception is org.springframework.beans.factory.BeanCreationException:

  Error creating bean with name 'odeDataSource' defined in class path
resource [jndi.xml]:
  Cannot resolve reference to bean 'connectionManager' while setting bean
property 'connectionManager'; nested exception is
org.springframework.beans.factory.BeanCreationException:
   Error creating bean with name 'connectionManager' defined in class path
resource [tx.xml]:
    Cannot resolve reference to bean 'connectionTracker' while setting bean
property 'connectionTracker'; nested exception is
org.springframework.beans.factory.BeanCreationException:
   Error creating bean with name 'connectionTracker' defined in class path
resource [tx.xml]:
     Cannot resolve reference to bean 'transactionManager' while setting
bean property 'geronimoTransactionManager'; nested exception is
org.springframework.beans.factory.BeanCreationException:
    Error creating bean with name 'transactionManager':
FactoryBean threw exception on object creation;

  nested exception is java.lang.NoSuchMethodError:
org.apache.geronimo.transaction.manager.GeronimoTransactionManager.<init>(ILorg/apache/geronimo/transaction/manager/XidFactory;Lorg/apache/geronimo/transaction/manager/TransactionLog;Ljava/util/Collection;)V
        at
org.jencks.GeronimoPlatformTransactionManager.<init>(GeronimoPlatform
TransactionManager.java:72)
        at
org.jencks.factory.TransactionManagerFactoryBean.getObject(TransactionManagerFactoryBean.java:55)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectFromFactoryBean(AbstractBeanFactory.java:1236)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1207)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:262)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:215)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedMap(BeanDefinitionValueResolver.java:314)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:139)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:337)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at
org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
        at
org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
        at org.apache.servicemix.Main.main(Main.java:54)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:344)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:461)

=======================

It should be noted that I updated the geronimo connector library: SM3.2.1
came with version 2.0.1, I now have 2.0.2, but that didn't help.

I configured a mysql datasource within SM and Ode. Here are my config files
(attached).

Thanx in advance for your help!

Frank
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd";>
<!-- START SNIPPET: jndi -->
<beans xmlns:jencks="http://jencks.org/2.0"; 
       xmlns:amq="http://activemq.org/config/1.0";
       xmlns:amqra="http://activemq.org/ra/1.0";
       xmlns:util="http://www.springframework.org/schema/util";>

  <bean id="jndi" depends-on="broker"
        class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
        factory-method="makeInitialContext"
        singleton="true">
    <property name="entries" ref="jndiEntries" />
  </bean>
  
  <bean id="odeManagedConnectionFactory" class="org.jencks.tranql.DataSourceMCF">
   <property name="driverName" value="com.mysql.jdbc.Driver" />
   <property name="url" value="jdbc:mysql://localhost:3306/odeDB" />
   <property name="user" value="regular" />
   <property name="password" value="regul4r" />
  </bean>
  
  <util:map id="jndiEntries">
    <!-- PXE DB datasource -->
    <!--
    <entry key="java:comp/env/jdbc/pxe__pm">
      <bean class="org.hsqldb.jdbc.jdbcDataSource">
        <property name="database" value="jdbc:hsqldb:mem:pxe"/>
        <property name="user" value = "sa"/>
        <property name="password" value = ""/>
      </bean>
    </entry>
    -->
    
    <!-- Ode DataSource -->
    <entry key="java:comp/env/jdbc/ode">
        <bean id="odeDataSource" class="org.jencks.factory.ConnectionFactoryFactoryBean">
            <property name="managedConnectionFactory" ref="odeManagedConnectionFactory"/>
            <property name="connectionManager" ref="connectionManager"/>
        </bean>
    </entry>
    
    <!-- wsn2005 jms connection factory -->
    <entry key="java:comp/env/jms/wsnotificationCF">
      <bean class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
        <constructor-arg value="${activemq.url}" />
      </bean>
    </entry>

    <!-- transaction manager -->
    <entry key="javax.transaction.TransactionManager" value-ref="transactionManager" />
    <entry key="java:comp/env/smx/TransactionManager" value-ref="transactionManager" />
    
    <!-- bootstrap context -->
    <entry key="java:comp/env/smx/BootstrapContext" value-ref="bootstrapContext" />
    
    <!-- connection context -->
    <entry key="java:comp/env/smx/ConnectionManager" value-ref="connectionManager" />
    
    <!-- Authentication service -->
    <entry key="java:comp/env/smx/AuthenticationService" value-ref="authenticationService" />
    
    <!-- Keystore manager -->
    <entry key="java:comp/env/smx/KeystoreManager" value-ref="keystoreManager" />
  </util:map>

  <!-- A managed JDBC DataSource for derby -->
  <!-- needs tranql derby
  <bean id="localDerbyMCF" class="org.tranql.connector.derby.EmbeddedXAMCF">
    <property name="databaseName" value="data/derby"/>
    <property name="createDatabase" value="true"/>
  </bean>
  <bean id="localDerbyDataSource" class="org.springframework.jca.support.LocalConnectionFactoryBean">
    <property name="managedConnectionFactory" ref="localDerbyMCF"/>
    <property name="connectionManager" ref="connectionManager"/>
  </bean>
  -->

  
  <!-- A managed JMS ConnectionFactory for ActiveMQ -->
  <amqra:managedConnectionFactory 
          id="activemqMCF"
          resourceAdapter="#activemqRA" />
  <amqra:resourceAdapter 
          id="activemqRA"
          serverUrl="vm://localhost"/>
  <jencks:connectionFactory 
          id="activemqCF"
          managedConnectionFactory="#activemqMCF"
          connectionManager="#connectionManager" />
        
</beans>
<!-- END SNIPPET: jndi -->

Reply via email to