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 >