You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2011/04/14 21:40:05 UTC
[jira] [Commented] (CAMEL-3865) FallbackTypeConverter method throws
JAXBException when marshalling nested, non-ObjectFactory, JAXB annotated,
classes
[ https://issues.apache.org/jira/browse/CAMEL-3865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13019999#comment-13019999 ]
Claus Ibsen commented on CAMEL-3865:
------------------------------------
Can you provide an unit test which reproduces this?
> FallbackTypeConverter method throws JAXBException when marshalling nested, non-ObjectFactory, JAXB annotated, classes
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-3865
> URL: https://issues.apache.org/jira/browse/CAMEL-3865
> Project: Camel
> Issue Type: Bug
> Components: camel-jaxb
> Affects Versions: 2.7.0
> Reporter: Clifton Eaton
>
> FallbackTypeConverter method throws JAXBException when marshalling nested, non-ObjectFactory, JAXB annotated, classes. These are classes that are annotated with the @XmlRootElement, but not generated using XJC, so there is no ObjectFactory class for them. The intention is to provide the package names containing the jaxb.index files to build the context.
> FallbackTypeConverter does not marshal or unmarshal using the package names, but rather uses the value's Class as the context. Thus everytime a JAXB annotated object contains another JAXB annotated object, there is an exception that looks like this:
> Caused by: org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: com.foo.bar.MyObject@15e6463]
> at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1155)
> at org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:93)
> at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:190)
> at org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:101)
> at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:73)
> at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:47)
> at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:115)
> at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103)
> at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:74)
> at org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:136)
> ... 39 more
> Caused by: javax.xml.bind.MarshalException
> - with linked exception:
> [javax.xml.bind.JAXBException: class com.foo.bar.nested.MyNested nor any of its super class is known to this context.]
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:318)
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244)
> at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:96)
> at org.apache.camel.converter.jaxb.FallbackTypeConverter.marshall(FallbackTypeConverter.java:174)
> at org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:88)
> ... 47 more
> Caused by: javax.xml.bind.JAXBException: class com.foo.bar.nested.MyNested nor any of its super class is known to this context.
> at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:246)
> at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:261)
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:653)
> at com.sun.xml.bind.v2.runtime.property.SingleMapNodeProperty.serializeBody(SingleMapNodeProperty.java:272)
> at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340)
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:593)
> at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:324)
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315)
> ... 51 more
> Caused by: javax.xml.bind.JAXBException: class com.foo.bar.nested.MyNested nor any of its super class is known to this context.
> at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:594)
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648)
> ... 57 more
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira