You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Ralf Steppacher (Jira)" <ji...@apache.org> on 2021/12/07 20:38:00 UTC
[jira] [Updated] (CAMEL-17295) REST DSL (With Servlet Component) Fails to Resolve Endpoint if Query Parameter Is Part of URI Parameter
[ https://issues.apache.org/jira/browse/CAMEL-17295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ralf Steppacher updated CAMEL-17295:
------------------------------------
Description:
The following works with Camel versions {{3.11.3}} and {{3.13.0}} but fails with version {{3.11.4}}:
{code:java}
rest("/Assertion?authTokenSourceUri={" + HEADER_AUTH_TOKEN_SOURCE_URI + "}").id(ROUTE_REST_GET_ASSERTION)
.get()
.produces(MediaType.TEXT_XML_VALUE)
.route()
// route definition omitted
{code}
With version {{3.11.4}} this yields an {{org.apache.camel.ResolveEndpointFailedException}}:
{noformat}
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: servlet:///Assertion?httpMethodRestrict=GET due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{authTokenSourceUri={authTokenSourceUri}?consumerComponentName=servlet}]
{noformat}
Specifying the query parameter via DSL works with all three versions:
{code:java}
rest("/Assertion").id(ROUTE_REST_GET_ASSERTION)
.get()
.param()
.name(HEADER_AUTH_TOKEN_SOURCE_URI)
.type(RestParamType.query)
.endParam()
// rest is same as above
{code}
was:
The following works with Camel versions {{3.11.3}} and {{3.13.0}} but fails with version {{3.11.4}}:
{code:java}
rest("/Assertion?authTokenSourceUri={" + HEADER_AUTH_TOKEN_SOURCE_URI + "}").id(ROUTE_REST_GET_ASSERTION)
.get()
.produces(MediaType.TEXT_XML_VALUE)
.route()
// route definition omitted
{code}
With version {{3.11.4}} this yields an {{org.apache.camel.ResolveEndpointFailedException}}:
{noformat}
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: servlet:///Assertion?httpMethodRestrict=GET due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{authTokenSourceUri={authTokenSourceUri}?consumerComponentName=servlet}]
{noformat}
Specifying the query parameter via DSL works in all three versions:
{code:java}
rest("/Assertion").id(ROUTE_REST_GET_ASSERTION)
.get()
.param()
.name(HEADER_AUTH_TOKEN_SOURCE_URI)
.type(RestParamType.query)
.endParam()
// rest is same as above
{code}
> REST DSL (With Servlet Component) Fails to Resolve Endpoint if Query Parameter Is Part of URI Parameter
> -------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-17295
> URL: https://issues.apache.org/jira/browse/CAMEL-17295
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 3.11.4
> Reporter: Ralf Steppacher
> Priority: Major
>
> The following works with Camel versions {{3.11.3}} and {{3.13.0}} but fails with version {{3.11.4}}:
> {code:java}
> rest("/Assertion?authTokenSourceUri={" + HEADER_AUTH_TOKEN_SOURCE_URI + "}").id(ROUTE_REST_GET_ASSERTION)
> .get()
> .produces(MediaType.TEXT_XML_VALUE)
> .route()
> // route definition omitted
> {code}
> With version {{3.11.4}} this yields an {{org.apache.camel.ResolveEndpointFailedException}}:
> {noformat}
> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: servlet:///Assertion?httpMethodRestrict=GET due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{authTokenSourceUri={authTokenSourceUri}?consumerComponentName=servlet}]
> {noformat}
> Specifying the query parameter via DSL works with all three versions:
> {code:java}
> rest("/Assertion").id(ROUTE_REST_GET_ASSERTION)
> .get()
> .param()
> .name(HEADER_AUTH_TOKEN_SOURCE_URI)
> .type(RestParamType.query)
> .endParam()
> // rest is same as above
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)