You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Steve973 <st...@gmail.com> on 2016/07/11 20:48:04 UTC

Rest DSL and "no matching path found"

I have my rest dsl route like this:

restConfiguration().component("undertow").host("localhost").port("8181");
rest("/timesheet")
        .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
        .to("bean:timesheetService?method=getTimesheetById")
        .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
        .to("bean:timesheetService?method=updateTimesheet");

It's odd because the "put" works just fine, but when I try using the "get",
it responds with a 404 error and "no matching path found".  What am I doing
wrong?

Re: Rest DSL and "no matching path found"

Posted by Steve973 <st...@gmail.com>.
I submitted https://issues.apache.org/jira/browse/CAMEL-10139 but if you
can give me some pointers, I will try to fix it and submit a pull request.
I looked at it very briefly, and since I'm not very familiar with the code,
nothing really stood out to me as broken.

Thanks,
Steve

On Wed, Jul 13, 2016 at 2:30 AM, Claus Ibsen <cl...@gmail.com> wrote:

> And btw I think you may have hit a bug in camel-undertow. You are
> welcome to log a JIRA so we wont forget about this.
>
> On Tue, Jul 12, 2016 at 12:03 PM, Claus Ibsen <cl...@gmail.com>
> wrote:
> > Ah yeah you may need to use a different port than what swarm/undertow
> > uses. Otherwise it should be a matter of changing the component name
> > and add the dependency.
> >
> > But then in swarm you got that fraction stuff so its maybe not so easy.
> >
> > You can get in touch with the wildfly-camel guys as they can help.
> >
> > On Tue, Jul 12, 2016 at 11:47 AM, Steve973 <st...@gmail.com> wrote:
> >> Thanks, Claus.  I am trying this in Wildfly Swarm, so I am not sure how
> >> difficult it would be to use something like camel-netty4-http instead of
> >> undertow, but I will look into it and I will let you know if the
> behavior
> >> is improved.
> >>
> >> On Tue, Jul 12, 2016 at 6:20 AM, Claus Ibsen <cl...@gmail.com>
> wrote:
> >>
> >>> The rest-dsl is syntax sugar.
> >>>
> >>> Its what the underlying component you use to handle what it can
> >>> support. In this case you use undertow.
> >>>
> >>> So in camel-undertow its creating 2 routes, where one is for GET and
> >>> the other is for PUT. So ideally it should be able from undertow to
> >>> route to the one that matches.
> >>>
> >>> But I didn't write the camel-undertow code so it may have "bug" ;)
> >>>
> >>> You can try with another component like jetty/netty4-http/restlet to
> >>> see how they work.
> >>>
> >>>
> >>> On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
> >>> > The error (if it is truly an error and not some mistake or
> >>> misconfiguration
> >>> > on my part) seems to happen when the same verb with the same path is
> used
> >>> > in the Camel DSL.  The last verb specified in the chain seems to
> override
> >>> > the verb before it.  For instance, if I change the line to have the
> "put"
> >>> > before the "get", then the "get" works.  The way the command is in
> the
> >>> > listing of the previous email resulst in the "put" working.  So, both
> >>> rest
> >>> > paths are valid, but something with the Camel DSL (or the way that I
> am
> >>> > specifying them) results in not being able to have multiple verbs
> for the
> >>> > same rest resource with the same parameter.  Also, if I change the
> "get"
> >>> in
> >>> > the example above to have the path of "new/{timesheetId"} then both
> verbs
> >>> > work.
> >>> >
> >>> > Thanks,
> >>> > Steve
> >>> >
> >>> > On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <
> ch007m@gmail.com>
> >>> > wrote:
> >>> >
> >>> >> Hi Steve,
> >>> >>
> >>> >> I suggest that first, you verify the endpoint registered by Camel
> when
> >>> the
> >>> >> routes have been started, curl it and that you perform the same test
> >>> using
> >>> >> Jetty component.
> >>> >>
> >>> >> According to the REST Defintion, you try to reach the URL
> >>> >>
> >>> >> http://localhost:8181/timesheet/123 where 123 is a timesheetId
> >>> >>
> >>> >> Regards,
> >>> >>
> >>> >> Charles
> >>> >>
> >>> >> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com>
> wrote:
> >>> >>
> >>> >> > I have my rest dsl route like this:
> >>> >> >
> >>> >> >
> >>>
> restConfiguration().component("undertow").host("localhost").port("8181");
> >>> >> > rest("/timesheet")
> >>> >> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >>> >> >         .to("bean:timesheetService?method=getTimesheetById")
> >>> >> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >>> >> >         .to("bean:timesheetService?method=updateTimesheet");
> >>> >> >
> >>> >> > It's odd because the "put" works just fine, but when I try using
> the
> >>> >> "get",
> >>> >> > it responds with a 404 error and "no matching path found".  What
> am I
> >>> >> doing
> >>> >> > wrong?
> >>> >> >
> >>> >>
> >>> >>
> >>> >>
> >>> >> --
> >>> >> Charles Moulliard
> >>> >> Apache Committer & PMC / Architect @RedHat
> >>> >> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
> >>> >>
> >>>
> >>>
> >>>
> >>> --
> >>> Claus Ibsen
> >>> -----------------
> >>> http://davsclaus.com @davsclaus
> >>> Camel in Action 2: https://www.manning.com/ibsen2
> >>>
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: Rest DSL and "no matching path found"

Posted by Claus Ibsen <cl...@gmail.com>.
And btw I think you may have hit a bug in camel-undertow. You are
welcome to log a JIRA so we wont forget about this.

On Tue, Jul 12, 2016 at 12:03 PM, Claus Ibsen <cl...@gmail.com> wrote:
> Ah yeah you may need to use a different port than what swarm/undertow
> uses. Otherwise it should be a matter of changing the component name
> and add the dependency.
>
> But then in swarm you got that fraction stuff so its maybe not so easy.
>
> You can get in touch with the wildfly-camel guys as they can help.
>
> On Tue, Jul 12, 2016 at 11:47 AM, Steve973 <st...@gmail.com> wrote:
>> Thanks, Claus.  I am trying this in Wildfly Swarm, so I am not sure how
>> difficult it would be to use something like camel-netty4-http instead of
>> undertow, but I will look into it and I will let you know if the behavior
>> is improved.
>>
>> On Tue, Jul 12, 2016 at 6:20 AM, Claus Ibsen <cl...@gmail.com> wrote:
>>
>>> The rest-dsl is syntax sugar.
>>>
>>> Its what the underlying component you use to handle what it can
>>> support. In this case you use undertow.
>>>
>>> So in camel-undertow its creating 2 routes, where one is for GET and
>>> the other is for PUT. So ideally it should be able from undertow to
>>> route to the one that matches.
>>>
>>> But I didn't write the camel-undertow code so it may have "bug" ;)
>>>
>>> You can try with another component like jetty/netty4-http/restlet to
>>> see how they work.
>>>
>>>
>>> On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
>>> > The error (if it is truly an error and not some mistake or
>>> misconfiguration
>>> > on my part) seems to happen when the same verb with the same path is used
>>> > in the Camel DSL.  The last verb specified in the chain seems to override
>>> > the verb before it.  For instance, if I change the line to have the "put"
>>> > before the "get", then the "get" works.  The way the command is in the
>>> > listing of the previous email resulst in the "put" working.  So, both
>>> rest
>>> > paths are valid, but something with the Camel DSL (or the way that I am
>>> > specifying them) results in not being able to have multiple verbs for the
>>> > same rest resource with the same parameter.  Also, if I change the "get"
>>> in
>>> > the example above to have the path of "new/{timesheetId"} then both verbs
>>> > work.
>>> >
>>> > Thanks,
>>> > Steve
>>> >
>>> > On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch...@gmail.com>
>>> > wrote:
>>> >
>>> >> Hi Steve,
>>> >>
>>> >> I suggest that first, you verify the endpoint registered by Camel when
>>> the
>>> >> routes have been started, curl it and that you perform the same test
>>> using
>>> >> Jetty component.
>>> >>
>>> >> According to the REST Defintion, you try to reach the URL
>>> >>
>>> >> http://localhost:8181/timesheet/123 where 123 is a timesheetId
>>> >>
>>> >> Regards,
>>> >>
>>> >> Charles
>>> >>
>>> >> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:
>>> >>
>>> >> > I have my rest dsl route like this:
>>> >> >
>>> >> >
>>> restConfiguration().component("undertow").host("localhost").port("8181");
>>> >> > rest("/timesheet")
>>> >> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>>> >> >         .to("bean:timesheetService?method=getTimesheetById")
>>> >> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>>> >> >         .to("bean:timesheetService?method=updateTimesheet");
>>> >> >
>>> >> > It's odd because the "put" works just fine, but when I try using the
>>> >> "get",
>>> >> > it responds with a 404 error and "no matching path found".  What am I
>>> >> doing
>>> >> > wrong?
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Charles Moulliard
>>> >> Apache Committer & PMC / Architect @RedHat
>>> >> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>>> >>
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> http://davsclaus.com @davsclaus
>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: Rest DSL and "no matching path found"

Posted by Charles Moulliard <ch...@gmail.com>.
FYI: We can't use a different port number when using undertow with
wildfly-swarm unfortunately

On Tue, Jul 12, 2016 at 1:03 PM, Claus Ibsen <cl...@gmail.com> wrote:

> Ah yeah you may need to use a different port than what swarm/undertow
> uses. Otherwise it should be a matter of changing the component name
> and add the dependency.
>
> But then in swarm you got that fraction stuff so its maybe not so easy.
>
> You can get in touch with the wildfly-camel guys as they can help.
>
> On Tue, Jul 12, 2016 at 11:47 AM, Steve973 <st...@gmail.com> wrote:
> > Thanks, Claus.  I am trying this in Wildfly Swarm, so I am not sure how
> > difficult it would be to use something like camel-netty4-http instead of
> > undertow, but I will look into it and I will let you know if the behavior
> > is improved.
> >
> > On Tue, Jul 12, 2016 at 6:20 AM, Claus Ibsen <cl...@gmail.com>
> wrote:
> >
> >> The rest-dsl is syntax sugar.
> >>
> >> Its what the underlying component you use to handle what it can
> >> support. In this case you use undertow.
> >>
> >> So in camel-undertow its creating 2 routes, where one is for GET and
> >> the other is for PUT. So ideally it should be able from undertow to
> >> route to the one that matches.
> >>
> >> But I didn't write the camel-undertow code so it may have "bug" ;)
> >>
> >> You can try with another component like jetty/netty4-http/restlet to
> >> see how they work.
> >>
> >>
> >> On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
> >> > The error (if it is truly an error and not some mistake or
> >> misconfiguration
> >> > on my part) seems to happen when the same verb with the same path is
> used
> >> > in the Camel DSL.  The last verb specified in the chain seems to
> override
> >> > the verb before it.  For instance, if I change the line to have the
> "put"
> >> > before the "get", then the "get" works.  The way the command is in the
> >> > listing of the previous email resulst in the "put" working.  So, both
> >> rest
> >> > paths are valid, but something with the Camel DSL (or the way that I
> am
> >> > specifying them) results in not being able to have multiple verbs for
> the
> >> > same rest resource with the same parameter.  Also, if I change the
> "get"
> >> in
> >> > the example above to have the path of "new/{timesheetId"} then both
> verbs
> >> > work.
> >> >
> >> > Thanks,
> >> > Steve
> >> >
> >> > On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch007m@gmail.com
> >
> >> > wrote:
> >> >
> >> >> Hi Steve,
> >> >>
> >> >> I suggest that first, you verify the endpoint registered by Camel
> when
> >> the
> >> >> routes have been started, curl it and that you perform the same test
> >> using
> >> >> Jetty component.
> >> >>
> >> >> According to the REST Defintion, you try to reach the URL
> >> >>
> >> >> http://localhost:8181/timesheet/123 where 123 is a timesheetId
> >> >>
> >> >> Regards,
> >> >>
> >> >> Charles
> >> >>
> >> >> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com>
> wrote:
> >> >>
> >> >> > I have my rest dsl route like this:
> >> >> >
> >> >> >
> >>
> restConfiguration().component("undertow").host("localhost").port("8181");
> >> >> > rest("/timesheet")
> >> >> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >> >> >         .to("bean:timesheetService?method=getTimesheetById")
> >> >> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >> >> >         .to("bean:timesheetService?method=updateTimesheet");
> >> >> >
> >> >> > It's odd because the "put" works just fine, but when I try using
> the
> >> >> "get",
> >> >> > it responds with a 404 error and "no matching path found".  What
> am I
> >> >> doing
> >> >> > wrong?
> >> >> >
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Charles Moulliard
> >> >> Apache Committer & PMC / Architect @RedHat
> >> >> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
> >> >>
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> http://davsclaus.com @davsclaus
> >> Camel in Action 2: https://www.manning.com/ibsen2
> >>
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>



-- 
Charles Moulliard
Apache Committer & PMC / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Re: Rest DSL and "no matching path found"

Posted by Claus Ibsen <cl...@gmail.com>.
Ah yeah you may need to use a different port than what swarm/undertow
uses. Otherwise it should be a matter of changing the component name
and add the dependency.

But then in swarm you got that fraction stuff so its maybe not so easy.

You can get in touch with the wildfly-camel guys as they can help.

On Tue, Jul 12, 2016 at 11:47 AM, Steve973 <st...@gmail.com> wrote:
> Thanks, Claus.  I am trying this in Wildfly Swarm, so I am not sure how
> difficult it would be to use something like camel-netty4-http instead of
> undertow, but I will look into it and I will let you know if the behavior
> is improved.
>
> On Tue, Jul 12, 2016 at 6:20 AM, Claus Ibsen <cl...@gmail.com> wrote:
>
>> The rest-dsl is syntax sugar.
>>
>> Its what the underlying component you use to handle what it can
>> support. In this case you use undertow.
>>
>> So in camel-undertow its creating 2 routes, where one is for GET and
>> the other is for PUT. So ideally it should be able from undertow to
>> route to the one that matches.
>>
>> But I didn't write the camel-undertow code so it may have "bug" ;)
>>
>> You can try with another component like jetty/netty4-http/restlet to
>> see how they work.
>>
>>
>> On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
>> > The error (if it is truly an error and not some mistake or
>> misconfiguration
>> > on my part) seems to happen when the same verb with the same path is used
>> > in the Camel DSL.  The last verb specified in the chain seems to override
>> > the verb before it.  For instance, if I change the line to have the "put"
>> > before the "get", then the "get" works.  The way the command is in the
>> > listing of the previous email resulst in the "put" working.  So, both
>> rest
>> > paths are valid, but something with the Camel DSL (or the way that I am
>> > specifying them) results in not being able to have multiple verbs for the
>> > same rest resource with the same parameter.  Also, if I change the "get"
>> in
>> > the example above to have the path of "new/{timesheetId"} then both verbs
>> > work.
>> >
>> > Thanks,
>> > Steve
>> >
>> > On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch...@gmail.com>
>> > wrote:
>> >
>> >> Hi Steve,
>> >>
>> >> I suggest that first, you verify the endpoint registered by Camel when
>> the
>> >> routes have been started, curl it and that you perform the same test
>> using
>> >> Jetty component.
>> >>
>> >> According to the REST Defintion, you try to reach the URL
>> >>
>> >> http://localhost:8181/timesheet/123 where 123 is a timesheetId
>> >>
>> >> Regards,
>> >>
>> >> Charles
>> >>
>> >> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:
>> >>
>> >> > I have my rest dsl route like this:
>> >> >
>> >> >
>> restConfiguration().component("undertow").host("localhost").port("8181");
>> >> > rest("/timesheet")
>> >> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>> >> >         .to("bean:timesheetService?method=getTimesheetById")
>> >> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>> >> >         .to("bean:timesheetService?method=updateTimesheet");
>> >> >
>> >> > It's odd because the "put" works just fine, but when I try using the
>> >> "get",
>> >> > it responds with a 404 error and "no matching path found".  What am I
>> >> doing
>> >> > wrong?
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Charles Moulliard
>> >> Apache Committer & PMC / Architect @RedHat
>> >> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>> >>
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> http://davsclaus.com @davsclaus
>> Camel in Action 2: https://www.manning.com/ibsen2
>>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: Rest DSL and "no matching path found"

Posted by Steve973 <st...@gmail.com>.
Thanks, Claus.  I am trying this in Wildfly Swarm, so I am not sure how
difficult it would be to use something like camel-netty4-http instead of
undertow, but I will look into it and I will let you know if the behavior
is improved.

On Tue, Jul 12, 2016 at 6:20 AM, Claus Ibsen <cl...@gmail.com> wrote:

> The rest-dsl is syntax sugar.
>
> Its what the underlying component you use to handle what it can
> support. In this case you use undertow.
>
> So in camel-undertow its creating 2 routes, where one is for GET and
> the other is for PUT. So ideally it should be able from undertow to
> route to the one that matches.
>
> But I didn't write the camel-undertow code so it may have "bug" ;)
>
> You can try with another component like jetty/netty4-http/restlet to
> see how they work.
>
>
> On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
> > The error (if it is truly an error and not some mistake or
> misconfiguration
> > on my part) seems to happen when the same verb with the same path is used
> > in the Camel DSL.  The last verb specified in the chain seems to override
> > the verb before it.  For instance, if I change the line to have the "put"
> > before the "get", then the "get" works.  The way the command is in the
> > listing of the previous email resulst in the "put" working.  So, both
> rest
> > paths are valid, but something with the Camel DSL (or the way that I am
> > specifying them) results in not being able to have multiple verbs for the
> > same rest resource with the same parameter.  Also, if I change the "get"
> in
> > the example above to have the path of "new/{timesheetId"} then both verbs
> > work.
> >
> > Thanks,
> > Steve
> >
> > On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch...@gmail.com>
> > wrote:
> >
> >> Hi Steve,
> >>
> >> I suggest that first, you verify the endpoint registered by Camel when
> the
> >> routes have been started, curl it and that you perform the same test
> using
> >> Jetty component.
> >>
> >> According to the REST Defintion, you try to reach the URL
> >>
> >> http://localhost:8181/timesheet/123 where 123 is a timesheetId
> >>
> >> Regards,
> >>
> >> Charles
> >>
> >> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:
> >>
> >> > I have my rest dsl route like this:
> >> >
> >> >
> restConfiguration().component("undertow").host("localhost").port("8181");
> >> > rest("/timesheet")
> >> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >> >         .to("bean:timesheetService?method=getTimesheetById")
> >> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >> >         .to("bean:timesheetService?method=updateTimesheet");
> >> >
> >> > It's odd because the "put" works just fine, but when I try using the
> >> "get",
> >> > it responds with a 404 error and "no matching path found".  What am I
> >> doing
> >> > wrong?
> >> >
> >>
> >>
> >>
> >> --
> >> Charles Moulliard
> >> Apache Committer & PMC / Architect @RedHat
> >> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
> >>
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: Rest DSL and "no matching path found"

Posted by Claus Ibsen <cl...@gmail.com>.
The rest-dsl is syntax sugar.

Its what the underlying component you use to handle what it can
support. In this case you use undertow.

So in camel-undertow its creating 2 routes, where one is for GET and
the other is for PUT. So ideally it should be able from undertow to
route to the one that matches.

But I didn't write the camel-undertow code so it may have "bug" ;)

You can try with another component like jetty/netty4-http/restlet to
see how they work.


On Tue, Jul 12, 2016 at 10:36 AM, Steve973 <st...@gmail.com> wrote:
> The error (if it is truly an error and not some mistake or misconfiguration
> on my part) seems to happen when the same verb with the same path is used
> in the Camel DSL.  The last verb specified in the chain seems to override
> the verb before it.  For instance, if I change the line to have the "put"
> before the "get", then the "get" works.  The way the command is in the
> listing of the previous email resulst in the "put" working.  So, both rest
> paths are valid, but something with the Camel DSL (or the way that I am
> specifying them) results in not being able to have multiple verbs for the
> same rest resource with the same parameter.  Also, if I change the "get" in
> the example above to have the path of "new/{timesheetId"} then both verbs
> work.
>
> Thanks,
> Steve
>
> On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch...@gmail.com>
> wrote:
>
>> Hi Steve,
>>
>> I suggest that first, you verify the endpoint registered by Camel when the
>> routes have been started, curl it and that you perform the same test using
>> Jetty component.
>>
>> According to the REST Defintion, you try to reach the URL
>>
>> http://localhost:8181/timesheet/123 where 123 is a timesheetId
>>
>> Regards,
>>
>> Charles
>>
>> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:
>>
>> > I have my rest dsl route like this:
>> >
>> > restConfiguration().component("undertow").host("localhost").port("8181");
>> > rest("/timesheet")
>> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>> >         .to("bean:timesheetService?method=getTimesheetById")
>> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>> >         .to("bean:timesheetService?method=updateTimesheet");
>> >
>> > It's odd because the "put" works just fine, but when I try using the
>> "get",
>> > it responds with a 404 error and "no matching path found".  What am I
>> doing
>> > wrong?
>> >
>>
>>
>>
>> --
>> Charles Moulliard
>> Apache Committer & PMC / Architect @RedHat
>> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: Rest DSL and "no matching path found"

Posted by Steve973 <st...@gmail.com>.
The error (if it is truly an error and not some mistake or misconfiguration
on my part) seems to happen when the same verb with the same path is used
in the Camel DSL.  The last verb specified in the chain seems to override
the verb before it.  For instance, if I change the line to have the "put"
before the "get", then the "get" works.  The way the command is in the
listing of the previous email resulst in the "put" working.  So, both rest
paths are valid, but something with the Camel DSL (or the way that I am
specifying them) results in not being able to have multiple verbs for the
same rest resource with the same parameter.  Also, if I change the "get" in
the example above to have the path of "new/{timesheetId"} then both verbs
work.

Thanks,
Steve

On Tue, Jul 12, 2016 at 12:43 AM, Charles Moulliard <ch...@gmail.com>
wrote:

> Hi Steve,
>
> I suggest that first, you verify the endpoint registered by Camel when the
> routes have been started, curl it and that you perform the same test using
> Jetty component.
>
> According to the REST Defintion, you try to reach the URL
>
> http://localhost:8181/timesheet/123 where 123 is a timesheetId
>
> Regards,
>
> Charles
>
> On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:
>
> > I have my rest dsl route like this:
> >
> > restConfiguration().component("undertow").host("localhost").port("8181");
> > rest("/timesheet")
> >         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >         .to("bean:timesheetService?method=getTimesheetById")
> >         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
> >         .to("bean:timesheetService?method=updateTimesheet");
> >
> > It's odd because the "put" works just fine, but when I try using the
> "get",
> > it responds with a 404 error and "no matching path found".  What am I
> doing
> > wrong?
> >
>
>
>
> --
> Charles Moulliard
> Apache Committer & PMC / Architect @RedHat
> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>

Re: Rest DSL and "no matching path found"

Posted by Charles Moulliard <ch...@gmail.com>.
Hi Steve,

I suggest that first, you verify the endpoint registered by Camel when the
routes have been started, curl it and that you perform the same test using
Jetty component.

According to the REST Defintion, you try to reach the URL

http://localhost:8181/timesheet/123 where 123 is a timesheetId

Regards,

Charles

On Mon, Jul 11, 2016 at 10:48 PM, Steve973 <st...@gmail.com> wrote:

> I have my rest dsl route like this:
>
> restConfiguration().component("undertow").host("localhost").port("8181");
> rest("/timesheet")
>         .get("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>         .to("bean:timesheetService?method=getTimesheetById")
>         .put("/{timesheetId}").produces(MediaType.TEXT_PLAIN)
>         .to("bean:timesheetService?method=updateTimesheet");
>
> It's odd because the "put" works just fine, but when I try using the "get",
> it responds with a 404 error and "no matching path found".  What am I doing
> wrong?
>



-- 
Charles Moulliard
Apache Committer & PMC / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io