Gents-

I am trying to test a camel CXFRS endpoint route and getting the following
*trace*...

org.apache.camel.CamelExecutionException: Exception occurred during
execution on the exchange: Exchange[Message: Hello World]
        at
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1212)
        at
org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:509)
        at
org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:442)
        at
org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:438)
        at
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126)
        at
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:342)
        at
com.akqa.audi.service.product.ProductDataRouteTest.testMoveFile(ProductDataRouteTest.java:26)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
        at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
        at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at
org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
        at
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
        at
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
        at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
        at
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
        at
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
        at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
        at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.IllegalArgumentException: The configure bean is not the
instance of org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean
        at
org.apache.camel.component.cxf.jaxrs.CxfRsEndpoint.checkBeanType(CxfRsEndpoint.java:131)
        at
org.apache.camel.component.cxf.jaxrs.CxfRsSpringEndpoint.newJAXRSClientFactoryBean(CxfRsSpringEndpoint.java:75)
        at
org.apache.camel.component.cxf.jaxrs.CxfRsEndpoint.createJAXRSClientFactoryBean(CxfRsEndpoint.java:204)
        at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer$ClientFactoryBeanCache.get(CxfRsProducer.java:358)
        at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeHttpClient(CxfRsProducer.java:96)
        at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:87)
        at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
        at
org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
        at
org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:352)
        at
org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:324)
        at 
org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:223)
        at 
org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:324)
        at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:169)
        at
org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
        at
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:124)
        ... 30 more
*
Here is my test:*

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AppConfig.class})
public class Test {

    @Autowired
    protected CamelContext context;

    @Produce(uri = "file://target/inbox")
    protected ProducerTemplate inbox;

    @EndpointInject(uri = "cxfrs:bean:rsServer")
    protected ProducerTemplate rsServer;

    ...

*Here are my routes:*

@Component
public class TestRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("file://target/inbox")
            .to("file://target/outbox");

        from("cxfrs:bean:rsServer")
            .setBody(constant("HI"))
            .setHeader(Exchange.HTTP_PATH, constant(""))
            .to("http://www.google.com?bridgeEndpoint=true";)
            .unmarshal().gzip();

    ...

*Here is my Config:*

<cxf:rsServer id="rsServer" address="/">
                <cxf:serviceBeans>
                        <ref bean="productService"/>
                </cxf:serviceBeans>
        <cxf:extensionMappings>
            <entry key="json" value="application/json"/>
            <entry key="xml" value="application/xml"/>
        </cxf:extensionMappings>
        </cxf:rsServer>

        <camelContext xmlns="http://camel.apache.org/schema/spring";>
                <routeBuilder ref="testRouter"/>
        </camelContext>



I can test the File transfer routes just fine and can access the proxied
page when running this on the server.  How can I send a message to the CXFRS
route in a test?

Thanks!


--
View this message in context: 
http://camel.465427.n5.nabble.com/Testing-Camel-CXFRS-Routes-tp5549188p5549188.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to