We figured it out, the reason was, that the Jackrabbit apis were in the 
build-path of the application AND the server.

Best regards,
Matthias Neubauer 

>-----Ursprüngliche Nachricht-----
>Von: Neubauer, Matthias [mailto:[EMAIL PROTECTED] 
>Gesendet: Mittwoch, 2. Januar 2008 11:14
>An: users@jackrabbit.apache.org
>Betreff: Complete: ClassCastException for Custom NodeType registration
>
>
>Hi!
>
>Sorry for the half sent mail, her now the complete one:
>
>We are using Jackrabbit 1.33 with a sybase database. To register custom
>nodetypes, we are using a cnd-File, and we configured this through the
>JackrabbitSessionFactory of SpringModules. (see below)
>
>       <bean id="jcrSessionFactory"
>       
>class="org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory">
>               <property name="repository" ref="repository" />
>               <property name="workspaceName"
>value="${repository.workspace.name}"/>
>               <property name="credentials">
>                       <bean class="javax.jcr.SimpleCredentials">
>                               <constructor-arg index="0"
>value="haidlas" />
>                               <!-- create the credentials using a bean
>factory -->
>                               <constructor-arg index="1">
>                                       <bean factory-bean="password"
>       
>factory-method="toCharArray" />
>                               </constructor-arg>
>                       </bean>
>               </property>
>               <property name="contentType" value="text/x-jcr-cnd" />
>               <property name="nodeDefinitions">
>                       <list>
>                               <value>resourcePackageNodes.cnd</value>
>                       </list>
>               </property>
>       </bean>
>
>Our problem is, that we get a ClassCastException when trying to run the
>application at startup to register the custom nodetypes:
>
>org.springframework.beans.factory.BeanCreationException: Error creating
>bean with name 'jcrSessionFactory' defined in ServletContext resource
>[/WEB-INF/packageManager.xml]: Initialization of bean failed; nested
>exception is java.lang.ClassCastException:
>org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl
>java.lang.ClassCastException:
>org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl
>       at
>org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory.regis
>terNodeTy
>pes(JackrabbitSessionFactory.java:59)
>       at
>org.springmodules.jcr.JcrSessionFactory.afterPropertiesSet(JcrS
>essionFac
>tory.java:126)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1058)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.createBean(AbstractAutowireCapableBeanFactory.java:363)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:226)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:147)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveReference(BeanDefinitionValueResolver.java:176)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveValueIfNecessary(BeanDefinitionValueResolver.java:105)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1012)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.populateBean(AbstractAutowireCapableBeanFactory.java:823)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.createBean(AbstractAutowireCapableBeanFactory.java:345)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:226)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:147)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveReference(BeanDefinitionValueResolver.java:176)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveValueIfNecessary(BeanDefinitionValueResolver.java:105)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1012)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.populateBean(AbstractAutowireCapableBeanFactory.java:823)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.createBean(AbstractAutowireCapableBeanFactory.java:345)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:226)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:147)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveReference(BeanDefinitionValueResolver.java:176)
>       at
>org.springframework.beans.factory.support.BeanDefinitionValueRe
>solver.re
>solveValueIfNecessary(BeanDefinitionValueResolver.java:105)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1012)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.populateBean(AbstractAutowireCapableBeanFactory.java:823)
>       at
>org.springframework.beans.factory.support.AbstractAutowireCapab
>leBeanFac
>tory.createBean(AbstractAutowireCapableBeanFactory.java:345)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:226)
>       at
>org.springframework.beans.factory.support.AbstractBeanFactory.g
>etBean(Ab
>stractBeanFactory.java:147)
>       at
>org.springframework.beans.factory.support.DefaultListableBeanFa
>ctory.pre
>InstantiateSingletons(DefaultListableBeanFactory.java:275)
>       at
>org.springframework.context.support.AbstractApplicationContext.
>refresh(A
>bstractApplicationContext.java:318)
>       at
>org.springframework.web.context.support.AbstractRefreshableWebA
>pplicatio
>nContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
>       at
>org.springframework.web.context.ContextLoader.createWebApplicat
>ionContex
>t(ContextLoader.java:230)
>       at
>org.springframework.web.context.ContextLoader.initWebApplicatio
>nContext(
>ContextLoader.java:156)
>       at
>org.springframework.web.context.ContextLoaderListener.contextIn
>itialized
>(ContextLoaderListener.java:48)
>       at
>org.apache.catalina.core.StandardContext.listenerStart(Standard
>Context.j
>ava:3827)
>       at
>org.apache.catalina.core.StandardContext.start(StandardContext.
>java:4343
>)
>       at
>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
>       at
>org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
>       at
>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
>       at
>org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
>       at
>org.apache.catalina.core.StandardService.start(StandardService.
>java:480)
>       at
>org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
>       at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at
>org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
>       at
>org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
>
>We tracked this Issue to the following part of the
>JackrabbitSessionFactory at line 58/59:
>
>       Workspace ws = getSession().getWorkspace();
>      JackrabbitNodeTypeManager nodeTypeManager =
>(JackrabbitNodeTypeManager)ws.getNodeTypeManager();
>            
>The workspace delivers a
>org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl, and the method
>tries to cast this into a
>org.apache.jackrabbit.api.JackrabbitNodeTypeManager (the interface).
>From looking into the code, this should work without a problem, as
>org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl is an
>implementation of org.apache.jackrabbit.api.JackrabbitNodeTypeManager.
>
>Did anyone else have this problem, too? We also tried this with a local
>file based Jackrabbit repository, and it delivered the same problem.
>
>Best regards,
>Matthias Neubauer
>
>-- 
>Matthias Neubauer
>Deutsche Nationalbibliothek
>Informationstechnik
>Projekt kopal
>Adickesallee 1
>D-60322 Frankfurt am Main
>Telefon: +49-69-1525-1778
>Telefax: +49-69-1525-1799
>mailto:[EMAIL PROTECTED]
>http://www.d-nb.de
>

Reply via email to