Posted the below on springforum, but have found out that the class is part of the full hibernate distribution. Though I can't find it as part of any "small" jar through maven. Anyone got a clue as to where it may be lurking ?
I'm trying to setup the environment to run spring and hibernate on a WAS server, using annotations on the EntityClasses (not planning to use persistance just yet). But have run in to an error ( java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.MetadataProvider ) which I can't seem to find out how to resolve. As far as I can find out "MetadataProvider" isn't defined in the hibernate-commons-annotations jar. Nor can I figure out which jar it is in or why Springframework depends on it ....
Any help would be greatly appreciated :)
My environment is:
- WAS 6.1.019
- hibernate 3.5.1-Final (core and annotations)
- hibernate-commons-annotations3.3.0.ga
- spring 3.0.2.RELEASE (beans, context, core, orm, tx among others)
snippet from applicationContext.xml:
Code:
    <!-- DefaultLobHandler --> 
        <bean id="defaultLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"> 
                <property name="nativeJdbcExtractor"> 
                        <ref local="nativeJdbcExtractor"/> 
                </property> 
        </bean> 
        <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor"/>       
    <!-- Datasources --> 
        <bean id="odbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
                <property name="jndiName"> 
                        <value>jdbc/db1</value> 
                </property> 
                <property name="resourceRef"> 
                        <value>true</value> 
                </property> 
        </bean> 
        
        <!-- SessionFactory --> 
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
            <property name="dataSource" ref="odbDataSource" /> 
                <property name="lobHandler" ref="defaultLobHandler" /> 
                <property name="annotatedClasses"> 
                        <list> 
                                <value>no.domain.hibernate.Entity1</value> 
                        </list> 
                </property> 
                <property name="hibernateProperties"> 
                        <props> 
                            <!-- for DEBUG --> 
                                <prop key="hibernate.show_sql">false</prop> 
                                <prop key="hibernate.format_sql">false</prop> 
                                <prop key="hibernate.generate_statistics">false</prop> 
                                <!-- Database Settings --> 
                                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
                                <prop key="hibernate.max_fetch_depth">3</prop> 
                                <!-- JDBC Settings --> 
                                <prop key="hibernate.jdbc.use_streams_for_binary">true</prop> 
                                <!-- Cache settings --> 
                                <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
                                <prop key="hibernate.cache.use_minimal_puts">true</prop> 
                                <!-- Transaction settings --> 
                                <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
                                <prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</prop>
                        </props> 
                </property> 
        </bean>
snippet from log:
Code:
        ... 69 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org.hibernate.annotations.common.reflection.MetadataProvider
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
        ... 79 more 
Caused by: java.lang.NoClassDefFoundError: org.hibernate.annotations.common.reflection.MetadataProvider 
        at java.lang.J9VMInternals.verifyImpl(Native Method) 
        at java.lang.J9VMInternals.verify(J9VMInternals.java:68) 
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:129) 
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67) 
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:522) 
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) 
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104) 
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newConfiguration(LocalSessionFactoryBean.java:813)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:549)
        at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
        ... 86 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.MetadataProvider 
        at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:479) 
        at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:380) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:597) 
        ... 100 more