[ https://issues.apache.org/jira/browse/CAMEL-8962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14625510#comment-14625510 ]
Chris Pimlott commented on CAMEL-8962: -------------------------------------- This happens because of the second line in VelocityEndpoint.findOrCreateEndpoint: {code} public VelocityEndpoint findOrCreateEndpoint(String uri, String newResourceUri) { String newUri = uri.replace(getResourceUri(), newResourceUri); log.debug("Getting endpoint with URI: {}", newUri); return getCamelContext().getEndpoint(newUri, VelocityEndpoint.class); } {code} The problem is a mismatch in encoding between {{uri}} and {{getResourceUri()}}. {code} * url: velocity://%5Btemplate-in-header%5D * getResourceUri(): [template-in-header] {code} The solution may just to be urlencode the first argument to {{replace.call}} but I'm not confident enough about my understanding of where and when encoding is done in Camel URIs to be absolutely certain. > CamelVelocityResourceUri does not work when velocity URL contains URL encoded > characters > ---------------------------------------------------------------------------------------- > > Key: CAMEL-8962 > URL: https://issues.apache.org/jira/browse/CAMEL-8962 > Project: Camel > Issue Type: Bug > Components: camel-velocity > Reporter: Chris Pimlott > > Specifying the a velocity template via the {{CamelVelocityResourceUri}} does > not work correctly if the {{velocity:}} used contains a character that is URL > encoded. > For example: > {code} > from("direct:input") > .setHeader(VelocityConstants.VELOCITY_RESOURCE_URI).constant("velocity/letter.vm") > .to("velocity:[template-in-header]") > .to("mock:results"); > {code} > Results in: java.io.FileNotFoundException: Cannot find resource: > [template-in-header] in classpath for URI: [template-in-header] -- This message was sent by Atlassian JIRA (v6.3.4#6332)