从JSON解组JAXB注释类我有一个具有JAXB和Bean验证注解类,就像下面:使用新泽西州和杰克逊
@XmlType(namespace = "urn:com:company:assessment")
@XmlRootElement
public class Assessment
{
// ...
@NotNull
@Size(min = 1,
message = "Assessment requires at least one address.")
@Valid
@XmlJavaTypeAdapter(AddressesAdapter.class)
public synchronized Set<Address> getAddresses()
{
return this.addresses;
}
// ...
}
泽西从XML就好了乘警这一类及解组;但是,Jersey无法正确从JSON解组。我在AddressesAdapter
类中设置了断点,并注意到在反序列化JSON时从不调用unmarshal()
方法。
尽管是否使用自然符号或其他方式配置Jersey,如果我创建了@XmlAnyElement
-annated属性,我会获得addresses
应该使用适配器解组的元素。
如果我直接用杰克逊和注册其JacksonJaxbJsonProvider
供应商,我得到尝试从JSON解组时除外:(JacksonJaxbJsonProvider
未列出)
Nov 2, 2011 10:07:41 AM com.sun.jersey.api.client.ClientResponse getEntity
SEVERE: A message body reader for Java class com.company.Assessment, and Java type class com.company.Assessment, and MIME media type application/json was not found
Nov 2, 2011 10:07:41 AM com.sun.jersey.api.client.ClientResponse getEntity
SEVERE: The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
没有人有一个想法,我如何可以将我的JAXB注释类编组为XML和JSON,而无需创建MessageBodyReader
s和MessageBodyWriter
s?
在此先感谢!
为您做了这项工作? – necromancer