You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "Reed, Nate" <nr...@hoovers.com> on 2010/06/14 20:10:55 UTC
namespaces in XMLBeansJSONProvider (CXF 2.2.8)
Hi,
I'm using CXF 2.2.8 and I found a problem when trying to write out
XMLBeans using Jettison. I get the following error:
java.lang.IllegalStateException: Invalid JSON namespace:
http://www.w3.org/2001/XMLSchema-instance
13:06:50,029 ERROR [STDERR] at
org.codehaus.jettison.mapped.MappedNamespaceConvention.getJSONNamespace(
MappedNamespaceConvention.java:248)
13:06:50,029 ERROR [STDERR] at
org.codehaus.jettison.mapped.MappedNamespaceConvention.createAttributeKe
y(MappedNamespaceConvention.java:233)
13:06:50,029 ERROR [STDERR] at
org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeAttribute(Mapped
XMLStreamWriter.java:216)
13:06:50,029 ERROR [STDERR] at
org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeAttribute(Mapped
XMLStreamWriter.java:225)
13:06:50,029 ERROR [STDERR] at
org.apache.cxf.jaxrs.provider.XMLBeanStreamSerializer.serialize(XMLBeanS
treamSerializer.java:96)
13:06:50,029 ERROR [STDERR] at
org.apache.cxf.jaxrs.provider.XMLBeansJSONProvider.writeTo(XMLBeansJSONP
rovider.java:98)
...
It looks related to this issue:
https://issues.apache.org/jira/browse/CXF-1671
Did this patch make it into 2.2.8? From looking at XMLBeansJSONProvider
it doesn't appear that this code handles namespaces:
public void writeTo(XmlObject obj, Class<?> cls, Type genericType,
Annotation[] annotations,
MediaType m, MultivaluedMap<String, Object>
headers, OutputStream os) {
try {
// Set up the JSON StAX implementation
Map<String, String> nstojns = new HashMap<String, String>();
XMLOutputFactory factory = new
MappedXMLOutputFactory(nstojns);
"nstojns" is an empty map which gets passed to MappedXMLOutputFactory.
Presumably, this is a map of namespaces that Jettison needs to know
about. Is there an easy fix for my project or do I have to
extend/patch XMLBeansJSONProvider?
Nate