You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Christian Kalkhoff <me...@ninan.info> on 2007/06/28 22:36:00 UTC

Did I miss the point about CND?

Hi,

today I tried to build my first node types. I integrate jackrabbit  
1.3 using spring-modules 0.8.

I defined my base.cnd:

/*
  * Basic types for ninan.info
  */
<ninan="http://ninan.info/">

[ninan:Content]
 > mix:referenceable, mix:versionable

- ninan:hidden (BOOLEAN) = TRUE
- ninan:urlTitle (STRING)
- ninan:startDate (DATE)
- ninan:endDate (DATE)
- ninan:tags (STRING) multiple

Starting my tomcat I get:

[Fatal Error] :1:1: Content is not allowed in prolog.
2007-06-28 22:24:34,013 [main] ERROR  
org.springframework.web.context.ContextLoader - Context  
initialization failed
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'blogService' defined in class path resource  
[applicationContext.xml]: Cannot create inner bean  
'info.ninan.blog.impl.JcrBlogDAO#48e385' of type  
[info.ninan.blog.impl.JcrBlogDAO] while setting bean property  
'blogDAO'; nested exception is  
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385'  
defined in class path resource [applicationContext.xml]: Cannot  
resolve reference to bean 'jcrTemplate' while setting bean property  
'template'; nested exception is  
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'jcrTemplate' defined in class path resource  
[applicationContext.xml]: Cannot resolve reference to bean  
'sessionFactory' while setting bean property 'sessionFactory'; nested  
exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name 'sessionFactory' defined in class path  
resource [applicationContext.xml]: Invocation of init method failed;  
nested exception is java.io.IOException: Content is not allowed in  
prolog.
Caused by:
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385'  
defined in class path resource [applicationContext.xml]: Cannot  
resolve reference to bean 'jcrTemplate' while setting bean property  
'template'; nested exception is  
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'jcrTemplate' defined in class path resource  
[applicationContext.xml]: Cannot resolve reference to bean  
'sessionFactory' while setting bean property 'sessionFactory'; nested  
exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name 'sessionFactory' defined in class path  
resource [applicationContext.xml]: Invocation of init method failed;  
nested exception is java.io.IOException: Content is not allowed in  
prolog.
Caused by:
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'jcrTemplate' defined in class path resource  
[applicationContext.xml]: Cannot resolve reference to bean  
'sessionFactory' while setting bean property 'sessionFactory'; nested  
exception is org.springframework.beans.factory.BeanCreationException:  
Error creating bean with name 'sessionFactory' defined in class path  
resource [applicationContext.xml]: Invocation of init method failed;  
nested exception is java.io.IOException: Content is not allowed in  
prolog.
Caused by:
org.springframework.beans.factory.BeanCreationException: Error  
creating bean with name 'sessionFactory' defined in class path  
resource [applicationContext.xml]: Invocation of init method failed;  
nested exception is java.io.IOException: Content is not allowed in  
prolog.
Caused by:
java.io.IOException: Content is not allowed in prolog.
         at org.apache.jackrabbit.core.util.DOMWalker.<init> 
(DOMWalker.java:65)
         at  
org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader.<init> 
(NodeTypeReader.java:90)
         at  
org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeType 
s(NodeTypeManagerImpl.java:224)
         at  
org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeType 
s(NodeTypeManagerImpl.java:475)
         at  
org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory.registerNodeTy 
pes(JackrabbitSessionFactory.java:67)
         at org.springmodules.jcr.JcrSessionFactory.afterPropertiesSet 
(JcrSessionFactory.java:126)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1202)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:428)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory 
$1.getObject(AbstractBeanFactory.java:251)
         at  
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.g 
etSingleton(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.re 
solveReference(BeanDefinitionValueResolver.java:261)
         at  
org.springframework.beans.factory.support.BeanDefinitionValueResolver.re 
solveValueIfNecessary(BeanDefinitionValueResolver.java:109)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:424)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory 
$1.getObject(AbstractBeanFactory.java:251)
         at  
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.g 
etSingleton(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.re 
solveReference(BeanDefinitionValueResolver.java:261)
         at  
org.springframework.beans.factory.support.BeanDefinitionValueResolver.re 
solveValueIfNecessary(BeanDefinitionValueResolver.java:109)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:424)
         at  
org.springframework.beans.factory.support.BeanDefinitionValueResolver.re 
solveInnerBean(BeanDefinitionValueResolver.java:215)
         at  
org.springframework.beans.factory.support.BeanDefinitionValueResolver.re 
solveValueIfNecessary(BeanDefinitionValueResolver.java:122)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:424)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory 
$1.getObject(AbstractBeanFactory.java:251)
         at  
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.g 
etSingleton(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.pre 
InstantiateSingletons(DefaultListableBeanFactory.java:287)
         at  
org.springframework.context.support.AbstractApplicationContext.refresh 
(AbstractApplicationContext.java:352)
         at  
org.springframework.web.context.ContextLoader.createWebApplicationContex 
t(ContextLoader.java:244)
         at  
org.springframework.web.context.ContextLoader.initWebApplicationContext( 
ContextLoader.java:187)
         at  
org.springframework.web.context.ContextLoaderListener.contextInitialized 
(ContextLoaderListener.java:49)
         at org.apache.catalina.core.StandardContext.listenerStart 
(StandardContext.java:3763)
         at org.apache.catalina.core.StandardContext.start 
(StandardContext.java:4211)
         at org.apache.catalina.core.ContainerBase.start 
(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardHost.start 
(StandardHost.java:718)
         at org.apache.catalina.core.ContainerBase.start 
(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardEngine.start 
(StandardEngine.java:442)
         at org.apache.catalina.core.StandardService.start 
(StandardService.java:450)
         at org.apache.catalina.core.StandardServer.start 
(StandardServer.java:709)
         at org.apache.catalina.startup.Catalina.start(Catalina.java: 
551)
         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.apache.catalina.startup.Bootstrap.start 
(Bootstrap.java:294)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java: 
432)
Caused by: org.xml.sax.SAXParseException: Content is not allowed in  
prolog.
         at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
         at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown  
Source)
         at javax.xml.parsers.DocumentBuilder.parse 
(DocumentBuilder.java:98)
         at org.apache.jackrabbit.core.util.DOMWalker.<init> 
(DOMWalker.java:60)
         ... 55 more

As far as I can see jackrabbit is reading the cnd file as xml. But it  
is the CND format. On the website I found a reference to the "OLD"  
XML format and the new CND format. So in the stable release 1.3 is  
there support for the new CND format or am I stuck to that XML based  
definitions?

I hope you can help me get things clear.

Regards

Christian
--
Christian Kalkhoff <me...@ninan.info>
Softwareentwickler und Administrator
http://ninan.info
http://www.kalkhoff.net



Re: Did I miss the point about CND?

Posted by Christian Kalkhoff <me...@ninan.info>.
Hi Felix,

thank you a lot. Finally I got it working. For reference see my config:

	<bean id="sessionFactory"
		class="org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory">
		<property name="repository" ref="repository" />
		<property name="contentType" value="text/x-jcr-cnd" />
		<property name="nodeDefinitions">
			<list>
				<value>classpath:/jcr/base.cnd</value>
				<value>classpath:/jcr/blog.cnd</value>
			</list>
		</property>
	</bean>

Please note that I had to use the constant value since Spring does  
not replace constants (AFAIK).

Anyway that isnĀ“t to problematic I guess. Now I will splay with the  
JcrTemplate... :-D

Regards

Christian

Am 29.06.2007 um 08:55 schrieb Felix Meschberger:

> Hi Christian,
>
> The CND file is not XML and it seems that the JackrabbitSessionFactory
> defaults to XML, you should probably set the session factory's  
> contentType
> property to  JackrabbitNodeTypeManager.TEXT_X_JCR_CND. This may help.
>
> Regards
> Felix
>
> PS: And yes, I just looked at the source code and no, I do not more of
> SpringModules :-)
>
> On 6/28/07, Christian Kalkhoff <me...@ninan.info> wrote:
>>
>> Hi,
>> today I tried to build my first node types. I integrate jackrabbit  
>> 1.3using spring-modules
>> 0.8.
>>
>> I defined my base.cnd:
>>
>> /*
>>  * Basic types for ninan.info
>>  */
>> <ninan="http://ninan.info/">
>>
>> [ninan:Content]
>> > mix:referenceable, mix:versionable
>>
>> - ninan:hidden (BOOLEAN) = TRUE
>> - ninan:urlTitle (STRING)
>> - ninan:startDate (DATE)
>> - ninan:endDate (DATE)
>> - ninan:tags (STRING) multiple
>>
>> Starting my tomcat I get:
>>
>> [Fatal Error] :1:1: Content is not allowed in prolog.
>> 2007-06-28 22:24:34,013 [main] ERROR org.springframework.
>> web.context.ContextLoader - Context initialization failed
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'blogService' defined in class path resource [
>> applicationContext.xml]: Cannot create inner bean '
>> info.ninan.blog.impl.JcrBlogDAO#48e385' of type [
>> info.ninan.blog.impl.JcrBlogDAO] while setting bean property  
>> 'blogDAO';
>> nested exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385' defined in  
>> class
>> path resource [applicationContext.xml]: Cannot resolve reference  
>> to bean
>> 'jcrTemplate' while setting bean property 'template'; nested  
>> exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'jcrTemplate' defined in class path resource [
>> applicationContext.xml]: Cannot resolve reference to bean  
>> 'sessionFactory'
>> while setting bean property 'sessionFactory'; nested exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'sessionFactory' defined in class path resource [
>> applicationContext.xml]: Invocation of init method failed; nested
>> exception is java.io.IOException: Content is not allowed in prolog.
>> Caused by:
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385' defined in  
>> class
>> path resource [applicationContext.xml]: Cannot resolve reference  
>> to bean
>> 'jcrTemplate' while setting bean property 'template'; nested  
>> exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'jcrTemplate' defined in class path resource [
>> applicationContext.xml]: Cannot resolve reference to bean  
>> 'sessionFactory'
>> while setting bean property 'sessionFactory'; nested exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'sessionFactory' defined in class path resource [
>> applicationContext.xml]: Invocation of init method failed; nested
>> exception is java.io.IOException: Content is not allowed in prolog.
>> Caused by:
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'jcrTemplate' defined in class path resource [
>> applicationContext.xml]: Cannot resolve reference to bean  
>> 'sessionFactory'
>> while setting bean property 'sessionFactory'; nested exception is
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'sessionFactory' defined in class path resource [
>> applicationContext.xml]: Invocation of init method failed; nested
>> exception is java.io.IOException: Content is not allowed in prolog.
>> Caused by:
>> org.springframework.beans.factory.BeanCreationException: Error  
>> creating
>> bean with name 'sessionFactory' defined in class path resource [
>> applicationContext.xml]: Invocation of init method failed; nested
>> exception is java.io.IOException: Content is not allowed in prolog.
>> Caused by:
>> java.io.IOException: Content is not allowed in prolog.
>>         at org.apache.jackrabbit.core.util.DOMWalker.<init> 
>> (DOMWalker.java
>> :65)
>>         at  
>> org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader.<init>(
>> NodeTypeReader.java:90)
>>         at
>> org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeT 
>> ypes(
>> NodeTypeManagerImpl.java:224)
>>         at
>> org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeT 
>> ypes(
>> NodeTypeManagerImpl.java:475)
>>         at
>> org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory.registerNod 
>> eTypes
>> (JackrabbitSessionFactory.java:67)
>>         at  
>> org.springmodules.jcr.JcrSessionFactory.afterPropertiesSet(
>> JcrSessionFactory.java:126)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.invokeInitMethods
>> (AbstractAutowireCapableBeanFactory.java:1202)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.initializeBean
>> (AbstractAutowireCapableBeanFactory.java:1172)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.createBean
>> (AbstractAutowireCapableBeanFactory.java:428)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanFactory 
>> $1.getObject(
>> AbstractBeanFactory.java:251)
>>         at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr 
>> y.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.AbstractAutowireCapableBean 
>> Factory.applyPropertyValues
>> (AbstractAutowireCapableBeanFactory.java:1100)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.populateBean
>> (AbstractAutowireCapableBeanFactory.java:862)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.createBean
>> (AbstractAutowireCapableBeanFactory.java:424)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanFactory 
>> $1.getObject(
>> AbstractBeanFactory.java:251)
>>         at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr 
>> y.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.AbstractAutowireCapableBean 
>> Factory.applyPropertyValues
>> (AbstractAutowireCapableBeanFactory.java:1100)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.populateBean
>> (AbstractAutowireCapableBeanFactory.java:862)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.createBean
>> (AbstractAutowireCapableBeanFactory.java:424)
>>         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.AbstractAutowireCapableBean 
>> Factory.applyPropertyValues
>> (AbstractAutowireCapableBeanFactory.java:1100)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.populateBean
>> (AbstractAutowireCapableBeanFactory.java:862)
>>         at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBean 
>> Factory.createBean
>> (AbstractAutowireCapableBeanFactory.java:424)
>>         at
>> org.springframework.beans.factory.support.AbstractBeanFactory 
>> $1.getObject(
>> AbstractBeanFactory.java:251)
>>         at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr 
>> y.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:287)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.refres 
>> h(
>> AbstractApplicationContext.java:352)
>>         at org.springframework.
>> web.context.ContextLoader.createWebApplicationContext 
>> (ContextLoader.java
>> :244)
>>         at org.springframework.
>> web.context.ContextLoader.initWebApplicationContext 
>> (ContextLoader.java
>> :187)
>>         at org.springframework.
>> web.context.ContextLoaderListener.contextInitialized(
>> ContextLoaderListener.java:49)
>>         at org.apache.catalina.core.StandardContext.listenerStart(
>> StandardContext.java:3763)
>>         at org.apache.catalina.core.StandardContext.start(
>> StandardContext.java:4211)
>>         at org.apache.catalina.core.ContainerBase.start 
>> (ContainerBase.java
>> :1013)
>>         at org.apache.catalina.core.StandardHost.start 
>> (StandardHost.java
>> :718)
>>         at org.apache.catalina.core.ContainerBase.start 
>> (ContainerBase.java
>> :1013)
>>         at org.apache.catalina.core.StandardEngine.start(
>> StandardEngine.java:442)
>>         at org.apache.catalina.core.StandardService.start(
>> StandardService.java:450)
>>         at org.apache.catalina.core.StandardServer.start(
>> StandardServer.java:709)
>>         at org.apache.catalina.startup.Catalina.start 
>> (Catalina.java:551)
>>         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.apache.catalina.startup.Bootstrap.start 
>> (Bootstrap.java:294)
>>         at org.apache.catalina.startup.Bootstrap.main 
>> (Bootstrap.java:432)
>> Caused by: org.xml.sax.SAXParseException: Content is not allowed in
>> prolog.
>>         at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>>         at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown
>> Source)
>>         at javax.xml.parsers.DocumentBuilder.parse 
>> (DocumentBuilder.java
>> :98)
>>         at org.apache.jackrabbit.core.util.DOMWalker.<init> 
>> (DOMWalker.java
>> :60)
>>         ... 55 more
>>
>> As far as I can see jackrabbit is reading the cnd file as xml. But  
>> it is
>> the CND format. On the website I found a reference to the "OLD"  
>> XML format
>> and the new CND format. So in the stable release 1.3 is there  
>> support for
>> the new CND format or am I stuck to that XML based definitions?
>>
>> I hope you can help me get things clear.
>>
>> Regards
>>
>> Christian
>> --
>> Christian Kalkhoff <me...@ninan.info>
>> Softwareentwickler und Administrator
>> http://ninan.info
>> http://www.kalkhoff.net
>>
>>
>>
>>

--
Christian Kalkhoff <me...@ninan.info>
Softwareentwickler und Administrator
http://ninan.info
http://www.kalkhoff.net



Re: Did I miss the point about CND?

Posted by Felix Meschberger <Fe...@day.com>.
Hi Christian,

The CND file is not XML and it seems that the JackrabbitSessionFactory
defaults to XML, you should probably set the session factory's contentType
property to  JackrabbitNodeTypeManager.TEXT_X_JCR_CND. This may help.

Regards
Felix

PS: And yes, I just looked at the source code and no, I do not more of
SpringModules :-)

On 6/28/07, Christian Kalkhoff <me...@ninan.info> wrote:
>
> Hi,
> today I tried to build my first node types. I integrate jackrabbit 1.3using spring-modules
> 0.8.
>
> I defined my base.cnd:
>
> /*
>  * Basic types for ninan.info
>  */
> <ninan="http://ninan.info/">
>
> [ninan:Content]
> > mix:referenceable, mix:versionable
>
> - ninan:hidden (BOOLEAN) = TRUE
> - ninan:urlTitle (STRING)
> - ninan:startDate (DATE)
> - ninan:endDate (DATE)
> - ninan:tags (STRING) multiple
>
> Starting my tomcat I get:
>
> [Fatal Error] :1:1: Content is not allowed in prolog.
> 2007-06-28 22:24:34,013 [main] ERROR org.springframework.
> web.context.ContextLoader - Context initialization failed
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'blogService' defined in class path resource [
> applicationContext.xml]: Cannot create inner bean '
> info.ninan.blog.impl.JcrBlogDAO#48e385' of type [
> info.ninan.blog.impl.JcrBlogDAO] while setting bean property 'blogDAO';
> nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385' defined in class
> path resource [applicationContext.xml]: Cannot resolve reference to bean
> 'jcrTemplate' while setting bean property 'template'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'jcrTemplate' defined in class path resource [
> applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory'
> while setting bean property 'sessionFactory'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'sessionFactory' defined in class path resource [
> applicationContext.xml]: Invocation of init method failed; nested
> exception is java.io.IOException: Content is not allowed in prolog.
> Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'info.ninan.blog.impl.JcrBlogDAO#48e385' defined in class
> path resource [applicationContext.xml]: Cannot resolve reference to bean
> 'jcrTemplate' while setting bean property 'template'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'jcrTemplate' defined in class path resource [
> applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory'
> while setting bean property 'sessionFactory'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'sessionFactory' defined in class path resource [
> applicationContext.xml]: Invocation of init method failed; nested
> exception is java.io.IOException: Content is not allowed in prolog.
> Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'jcrTemplate' defined in class path resource [
> applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory'
> while setting bean property 'sessionFactory'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'sessionFactory' defined in class path resource [
> applicationContext.xml]: Invocation of init method failed; nested
> exception is java.io.IOException: Content is not allowed in prolog.
> Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'sessionFactory' defined in class path resource [
> applicationContext.xml]: Invocation of init method failed; nested
> exception is java.io.IOException: Content is not allowed in prolog.
> Caused by:
> java.io.IOException: Content is not allowed in prolog.
>         at org.apache.jackrabbit.core.util.DOMWalker.<init>(DOMWalker.java
> :65)
>         at org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader.<init>(
> NodeTypeReader.java:90)
>         at
> org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeTypes(
> NodeTypeManagerImpl.java:224)
>         at
> org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeTypes(
> NodeTypeManagerImpl.java:475)
>         at
> org.springmodules.jcr.jackrabbit.JackrabbitSessionFactory.registerNodeTypes
> (JackrabbitSessionFactory.java:67)
>         at org.springmodules.jcr.JcrSessionFactory.afterPropertiesSet(
> JcrSessionFactory.java:126)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
> (AbstractAutowireCapableBeanFactory.java:1202)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
> (AbstractAutowireCapableBeanFactory.java:1172)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:428)
>         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:1100)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean
> (AbstractAutowireCapableBeanFactory.java:862)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:424)
>         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:1100)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean
> (AbstractAutowireCapableBeanFactory.java:862)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:424)
>         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.AbstractAutowireCapableBeanFactory.applyPropertyValues
> (AbstractAutowireCapableBeanFactory.java:1100)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean
> (AbstractAutowireCapableBeanFactory.java:862)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:424)
>         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:287)
>         at
> org.springframework.context.support.AbstractApplicationContext.refresh(
> AbstractApplicationContext.java:352)
>         at org.springframework.
> web.context.ContextLoader.createWebApplicationContext(ContextLoader.java
> :244)
>         at org.springframework.
> web.context.ContextLoader.initWebApplicationContext(ContextLoader.java
> :187)
>         at org.springframework.
> web.context.ContextLoaderListener.contextInitialized(
> ContextLoaderListener.java:49)
>         at org.apache.catalina.core.StandardContext.listenerStart(
> StandardContext.java:3763)
>         at org.apache.catalina.core.StandardContext.start(
> StandardContext.java:4211)
>         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java
> :1013)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java
> :718)
>         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java
> :1013)
>         at org.apache.catalina.core.StandardEngine.start(
> StandardEngine.java:442)
>         at org.apache.catalina.core.StandardService.start(
> StandardService.java:450)
>         at org.apache.catalina.core.StandardServer.start(
> StandardServer.java:709)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
>         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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
> Caused by: org.xml.sax.SAXParseException: Content is not allowed in
> prolog.
>         at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>         at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown
> Source)
>         at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java
> :98)
>         at org.apache.jackrabbit.core.util.DOMWalker.<init>(DOMWalker.java
> :60)
>         ... 55 more
>
> As far as I can see jackrabbit is reading the cnd file as xml. But it is
> the CND format. On the website I found a reference to the "OLD" XML format
> and the new CND format. So in the stable release 1.3 is there support for
> the new CND format or am I stuck to that XML based definitions?
>
> I hope you can help me get things clear.
>
> Regards
>
> Christian
> --
> Christian Kalkhoff <me...@ninan.info>
> Softwareentwickler und Administrator
> http://ninan.info
> http://www.kalkhoff.net
>
>
>
>