# ElasticSearch with Jackson2 annotated POJOs

**URL:** https://discuss.elastic.co/t/elasticsearch-with-jackson2-annotated-pojos/21915
**Category:** Elasticsearch
**Created:** [January 30, 2015, 12:34am UTC](https://discuss.elastic.co/t/elasticsearch-with-jackson2-annotated-pojos/21915 "2015-01-30T00:34:46Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![John\_D\_Ament](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/john_d_ament/32/764_2.png) [@John\_D\_Ament](https://discuss.elastic.co/u/John_D_Ament)
#### Post date: [January 30, 2015, 12:34am UTC](https://discuss.elastic.co/t/elasticsearch-with-jackson2-annotated-pojos/21915/1 "2015-01-30T00:34:46Z")

</div>

Hi,

I recently upgraded my app to Jackson2. Historically we had been indexing  
our rest model objects, since they're pretty well structured and make  
querying much easier. In our Jackson2 POJOs we use a className identifier  
to mark our objects, like this:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include =  
JsonTypeInfo.As.PROPERTY, property = "className")  
@JsonIgnoreProperties(ignoreUnknown=true)

The position in our structure is mapped as an interface, and includes  
appropriate

Now that we're indexing them with Jackson2, I've started seeing this  
exception whenever a record is stored (but only after a few are  
successfully added)

failed to parse [fields.creator.value.value]:  
org.elasticsearch.index.mapper.MapperParsingException: failed to parse  
[fields.creator.value.value]  
at  
org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:414)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.serializeObject(ObjectMapper.java:549)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:491)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.serializeObject(ObjectMapper.java:549)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:491)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.serializeObject(ObjectMapper.java:549)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:491)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.serializeObject(ObjectMapper.java:549)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:491)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:542)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:491)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(InternalIndexShard.java:397)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:191)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:535)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:434)  
[elasticsearch-1.3.4.jar:]  
at  
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  
[rt.jar:1.8.0\_20]  
at  
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  
[rt.jar:1.8.0\_20]  
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0\_20]  
Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: unknown  
property [className]  
at  
org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateFieldForString(StringFieldMapper.java:328)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateField(StringFieldMapper.java:274)  
[elasticsearch-1.3.4.jar:]  
at  
org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:404)  
[elasticsearch-1.3.4.jar:]  
... 17 more

This is what that section of the JSON looks like:  
"fields": [  
...,  
"creator": {  
"className": "BasicField",  
"fieldName": "creator",  
"fieldType": "person",  
"value": {  
"className": "PersonType",  
"value": {  
"className": "PersonId",  
"id": 262,  
"organizationId": 0  
}  
}  
},  
...  
]

So, is there anything I can do from mapping to fix this?

John

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
To view this discussion on the web visit [https://groups.google.com/d/msgid/elasticsearch/4f3546a7-0c0a-447e-91bf-f7843adc751f%40googlegroups.com](https://groups.google.com/d/msgid/elasticsearch/4f3546a7-0c0a-447e-91bf-f7843adc751f%40googlegroups.com).  
For more options, visit [https://groups.google.com/d/optout](https://groups.google.com/d/optout).

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 12:35am UTC](https://discuss.elastic.co/t/elasticsearch-with-jackson2-annotated-pojos/21915/2 "2017-07-06T00:35:46Z")

</div>


