Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.6.0
-
Sun Jdk 1.6, Mac OSX
-
Regression
Description
This used to work in 2.5.0 but in 2.6.0 it throws:
Caused by: javax.xml.bind.JAXBException: class com.ask.ugc.camel.Jask3061$Foo 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.childAsRoot(XMLSerializer.java:482) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315) at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) at org.apache.camel.converter.jaxb.JaxbDataFormat.marshal(JaxbDataFormat.java:117) at org.apache.camel.converter.jaxb.JaxbDataFormat.marshal(JaxbDataFormat.java:96) ...
@ContextConfiguration( locations = "foo.bar.JaxbBug$ContextConfig", loader = JavaConfigContextLoader.class) public class JaxbBug extends AbstractTestNGSpringContextTests { @EndpointInject(uri = "mock:end") protected MockEndpoint mockEndpoint; @Produce(uri = "direct:test") protected ProducerTemplate producer; @Test @DirtiesContext public void testJaxbMarshalling() throws InterruptedException { mockEndpoint.expectedMessageCount(1); producer.sendBody(new Foo()); mockEndpoint.assertIsSatisfied(); } @Configuration public static class ContextConfig extends SingleRouteCamelConfiguration { @Bean public RouteBuilder route() { return new RouteBuilder() { @Override public void configure() throws Exception { JaxbDataFormat jaxb = new JaxbDataFormat(JAXBContext.newInstance(Foo.class)); from("direct:test").marshal(jaxb).to("mock:end"); } }; } } @XmlRootElement public static class Foo { String bar; public String getBar() { return bar; } public void setBar(String bar) { this.bar = bar; } } }