Hi everyone, 

I'm currently trying the new REST DSL of the Apache Camel 2.14.0 release.
And as the title of this post state it, I got problems with a bean that
specify a file name. Let's show what's wrong.

Here come a valid XML file reduced to a test case. It only define a String
bean and a Camel context containing a rest endpoint and a single route
called by the rest endpoint.
_______________________________________________________________________________________
<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                                                
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                                                
http://camel.apache.org/schema/spring
                                                
http://camel.apache.org/schema/spring/camel-spring.xsd";
>

        <bean id="source-directory" class="java.lang.String">
                <constructor-arg type="java.lang.String"
value="file:/opt/a/directory/data/audio" />
        </bean>

        <camelContext id="camelContext"
xmlns="http://camel.apache.org/schema/spring";>
                
                <dataFormats>
                          <json id="jack" library="Jackson"
unmarshalTypeName="org.apache.camel.component.jackson.TestPojo"/>
                </dataFormats>
                
                <restConfiguration bindingMode="json" component="restlet" 
port="5117" />
                
                <rest path="/rest-api/">
                        <get uri="/{words}/" consumes="application/json"
produces="application/json">
                                <to uri="direct:words" />
                        </get>  
                </rest>

                <route>
                        <from uri="direct:words" />
                        <transform>
                                <simple>${headers.words}</simple>
                        </transform>
                </route>

        </camelContext>
        
</beans>
_______________________________________________________________________________________

To load and test this Camel context I use the following test case : 
_______________________________________________________________________________________
import org.apache.camel.CamelContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Test {
        @org.junit.Test
        public void testT() throws Exception {
                final FileSystemXmlApplicationContext bean = new
FileSystemXmlApplicationContext("src/test/resources/camelContext.xml");
                final CamelContext context = bean.getBean("camelContext",
CamelContext.class);
                context.start();
                Thread.yield();
                Thread.sleep(600000);
        }
}
_______________________________________________________________________________________

It currently lead to the following error :
/org.apache.camel.RuntimeCamelException:
org.apache.camel.FailedToCreateRouteException: Failed to create route route2
at: >>> RestBinding <<< in route:
Route(route2)[[From[rest:get:/rest-api/:/{words}/?produces=a... because of
Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated:
javax.xml.bind.JAXBException: "file" ne contient pas ObjectFactory.class ou
jaxb.index/

It seems that removing the bean  declaration OR the rest endpoint
declaration solve the problem, there is so an incompatibility between them,
but, as a Camel newbie, I'm unable to figure out what is the problem.

Can someone give me clues ? Do I'm doing something wrong ?

Thanks in advance,
Arthur.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Problem-with-REST-DSL-2-14-0-and-String-bean-tp5758812.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to