[
https://issues.apache.org/jira/browse/CAMEL-11951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226529#comment-16226529
]
Claus Ibsen commented on CAMEL-11951:
-------------------------------------
It works fine when I do
{code}
<get uri="/v1/customer/{custId}/devices" consumes="application/json"
produces="application/json">
<description>Queries all devices for a single customer</description>
<to uri="direct:getCustomerDevices" />
</get>
<get uri="/v1/customer/{custId}/detail" consumes="application/json"
produces="application/json">
<description>Customer detail</description>
<to uri="direct:getCustomer" />
</get>
{code}
And then just make those routes log
{code}
<route id="getCustomer">
<description>Queries the customer details from the heroku
server</description>
<from uri="direct:getCustomer" />
<log message="getCustomer detail ${header.custId}"/>
</route>
<route id="getDevice">
<description>Queries the device details from heroku server</description>
<from uri="direct:getDevice" />
<log message="getCustomer device ${header.custId}"/>
</route>
{code}
And then I call Camel via these 2 curls
{code}
davsclaus:/Users/davsclaus/Downloads/camel-bug-demo/$ curl
http://localhost:8078/integration/api/v1/customer/123456/devices
davsclaus:/Users/davsclaus/Downloads/camel-bug-demo/$ curl
http://localhost:8078/integration/api/v1/customer/999999/detail
{code}
Then I can see it calls different rest-dsl operation
{code}
[INFO ] 2017-10-31 10:49:23.692 [qtp1739303520-24] getCustomerDevices:159 -
getCustomer devices 123456
[INFO ] 2017-10-31 10:49:40.139 [qtp1739303520-19] getCustomer:159 -
getCustomer detail 999999
{code}
> Uri matching does not match request type
> ----------------------------------------
>
> Key: CAMEL-11951
> URL: https://issues.apache.org/jira/browse/CAMEL-11951
> Project: Camel
> Issue Type: Bug
> Components: camel-http-common
> Affects Versions: 2.20.0
> Environment: camel-spring, camel-jetty
> OS - RHEL
> Reporter: Robert Hillier
> Attachments: camel-bug-demo.zip
>
>
> I had previously described the problem here:
> https://stackoverflow.com/questions/46936348/apache-camel-rest-dsl-405-method-not-allowed
> It appears that the problem is down to a possible bug in the way URIs are
> matched (not to mention my rather obscure use-case)
> I have a number of REST-DSL endpoints with the same URI but different request
> types (POST, PUT, GET, DELETE). In my case, the URI is getting selected by
> HttpServletResolveConsumerStrategy.resolve (in addition to these, I have some
> specific endpoints with wildcards in them)
> This method matches the URI, but not the request type. When I send a GET
> request, it returns the first consumer candidate it finds which, in my case,
> always seems to be PUT. Later, when CamelContinuationServlet.doService
> checks that the request type and cadidate type match, they don't. It then
> returns 405 Method Not Allowed.
> I believe that the HttpServletResolveConsumerStrategy.resolve method IN
> camel-hhtp-common should check the request type as well as the URI.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)