JAXB marshaling broken in 2.6.0
-------------------------------

                 Key: CAMEL-3729
                 URL: https://issues.apache.org/jira/browse/CAMEL-3729
             Project: Camel
          Issue Type: Bug
          Components: camel-jaxb
    Affects Versions: 2.6.0
         Environment: Sun Jdk 1.6, Mac OSX
            Reporter: Dragisa Krsmanovic


This used to work in 2.5.0 but in 2.6.0 it throws:

{noformat}
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)
...
{noformat}


{code:java}
@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;
        }
    }

}
{code}

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to