Я получаю сообщение об ошибке, когда пытаюсь получить многозначное свойство в магнолии, так как я присваиваю его типу String. Как правильно прочитать однозначное и многозначное свойство (поскольку оба присутствуют)?
javax.jcr.ValueFormatException: свойство / wcmstest / de / search / jcr: mixinTypes является многозначным свойство, поэтому его значения можно получить только в виде массива в org. apache .jackrabbit.core.PropertyImpl.internalGetValue (PropertyImpl. java: 483) в org. apache .jackrabbit.core.PropertyImpl.getValue ( PropertyImpl. java: 510) в орг. apache .jackrabbit.core.PropertyImpl.getString (PropertyImpl. java: 520) по адресу info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getString (DelegatePropertyWrapper. java: 162) в info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getString (DelegatePropertyWrapper. java: 162) в info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getString (DelegatePropertyWrapper. java: 162) в info.olia. .wrapper.DelegatePropertyWrapper.getString (DelegatePropertyWrapper. java: 162) в info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getString (DelegatePropertyWrapper. java: 162) в ch.uz h.module.versioning.CreateNestedMap.nestedMap (CreateNestedMap. java: 32) в ch.uzh.module.versioning.ContextLoggerCommand.execute (ContextLoggerCommand. java: 78) в info.magnolia.commands.MgnlCommandized.exte ( MgnlCommand. java: 80) на info.magnolia.commands.MgnlCommand.execute (MgnlCommand. java: 69) на info.magnolia.commands.chain.ChainBase.execute (ChainBase. java: 101) на info .magnolia.commands.DelegateCommand.execute (DelegateCommand. java: 66):
Это код, который я использую:
HashMap<String, Object> map = new LinkedHashMap<>();
PropertyIterator pi;
try {
pi = node.getProperties();
//Get properties for the root node
while(pi.hasNext())
{
Property p = pi.nextProperty();
String name = p.getName();
String val = p.getString();
map.put(name,val);
}//end of while for properties of root node
} catch (RepositoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}