Hi, guys!
Can you please point me to an example of how to map binary content so that it
will be indexed with lucene.
Currently I'm trying to do it for List<Object> or byte[] field, however neither
of it works.
@Node(jcrMixinTypes = "mix:referenceable,mix:versionable,mix:lockable")
public class ContentItem1 implements Serializable {
private String uuid;
private String path;
@Field(uuid = true)
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
@Field(path = true)
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
@Bean
protected ContentItem1.DataContent1 dataContent;
@Field
protected String href;
public DataContent1 getDataContent() {
return dataContent;
}
public void setDataContent(DataContent1 dataContent) {
this.dataContent = dataContent;
}
public String getHref() {
return href;
}
public void setHref(String href) {
this.href = href;
}
@Node(jcrType = "nt:resource")
public static class DataContent1 {
@Field(jcrName = "jcr:mimeType")
private String mimeType;
@Field(jcrName = "jcr:lastModified")
private Calendar lastModified;
//list returned by JAXB, converter gets plain text from it and returns byte[]
// @Collection(collectionConverter = AnyTypeCollectionConverter.class,
jcrElementName = "jcr:data")
// protected List<Object> content;
// public List<Object> getContent() {
// return content;
// }
//
// public void setContent(List<Object> content) {
// this.content = content;
// }
@Field(jcrName = "jcr:data")
private byte[] content;
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
public String getMimeType() {
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public Calendar getLastModified() {
return lastModified;
}
public void setLastModified(Calendar lastModified) {
this.lastModified = lastModified;
}
}
}
org.apache.jackrabbit.ocm.exception.JcrMappingException: Unknown mixin type
null for mapped class class
ee.bns.editorial.domain.newsml_1_2.ContentItem1$DataContent1; nested exception
is javax.jcr.nodetype.NoSuchNodeTypeException:
{http://jackrabbit.apache.org/ocm}discriminator
javax.jcr.nodetype.NoSuchNodeTypeException:
{http://jackrabbit.apache.org/ocm}discriminator
at
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:1019)
at
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:469)
at
org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.getNodeType(NodeTypeManagerImpl.java:186)
at
org.apache.jackrabbit.core.NodeImpl.addMixin(NodeImpl.java:1023)
at
org.apache.jackrabbit.core.NodeImpl.addMixin(NodeImpl.java:2784)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.addDiscriminatorProperty(ObjectConverterImpl.java:245)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.insert(ObjectConverterImpl.java:214)
at
org.apache.jackrabbit.ocm.manager.beanconverter.impl.DefaultBeanConverterImpl.insert(DefaultBeanConverterImpl.java:53)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.insertBeanFields(ObjectConverterImpl.java:844)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.insert(ObjectConverterImpl.java:226)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.insert(ObjectConverterImpl.java:155)
at
org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl.insert(ObjectContentManagerImpl.java:406)
Thanks in advance.