[
https://issues.apache.org/jira/browse/CAMEL-11951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226531#comment-16226531
]
Robert Hillier commented on CAMEL-11951:
----------------------------------------
Claus,
That's correct. The "detail" request gets proxied through to the backend
service by one of the four proxy REST services. These are the ones with the
"/v1?matchOnUriPrefix=true&chunked=false" uri. But it is not selecting the
correct service, as described above.
When I stepped through the code, I noticed that it is selecting the best
matching URI, but it selects the first one it finds (which always seems to be
"put"). When it later checks the restriction against the incoming request
type, it rejects with 405.
Thanks,
Rob
> 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)