Mule:索引处路径中的非法字符
我正在按如下方式设置我的应用程序属性:Mule:索引处路径中的非法字符,mule,Mule,我正在按如下方式设置我的应用程序属性: consumptionAPI.host = consumptionapi.dev.xxx.com consumptionAPI.report = report consumptionAPI.month = month consumptionAPI.csv = monthly.csv <http:request-config name="HTTP_Request_Configuration" host="${
consumptionAPI.host = consumptionapi.dev.xxx.com
consumptionAPI.report = report
consumptionAPI.month = month
consumptionAPI.csv = monthly.csv
<http:request-config name="HTTP_Request_Configuration" host="${consumptionAPI.host}" port="80" doc:name="HTTP Request Configuration"/>
<http:request config-ref="HTTP_Request_Configuration" path="${consumptionAPI.report}/${consumptionAPI.year}/{yr}/${consumptionAPI.month}/{mth}/${consumptionAPI.csv}" method="GET" doc:name="HTTP">
<http:request-builder>
<http:uri-param paramName="yr" value="[flowVars.year]"/>
<http:uri-param paramName="mth" value="[flowVars.month]"/>
</http:request-builder>
</http:request>
并在我的配置中访问,如下所示:
consumptionAPI.host = consumptionapi.dev.xxx.com
consumptionAPI.report = report
consumptionAPI.month = month
consumptionAPI.csv = monthly.csv
<http:request-config name="HTTP_Request_Configuration" host="${consumptionAPI.host}" port="80" doc:name="HTTP Request Configuration"/>
<http:request config-ref="HTTP_Request_Configuration" path="${consumptionAPI.report}/${consumptionAPI.year}/{yr}/${consumptionAPI.month}/{mth}/${consumptionAPI.csv}" method="GET" doc:name="HTTP">
<http:request-builder>
<http:uri-param paramName="yr" value="[flowVars.year]"/>
<http:uri-param paramName="mth" value="[flowVars.month]"/>
</http:request-builder>
</http:request>
但是当运行流时,我得到以下错误:
java.net.URISyntaxException:http://${consumptionAPI.host}:80/${consumptionAPI.report}/${consumptionAPI.year}/[flowVars.year]/${consumptionAPI.month}/[flowVars.month]/${consumptionAPI.csv}
它似乎不喜欢URL中的第一个字符,但不确定原因
顺便说一下,如果我硬编码的网址,它的工作很好
我遗漏了什么吗?如果您没有为${consumptionAPI.year}提供值,那么它将在路径中保留$和大括号。这可能是一个问题,具体取决于您的文件系统
或者它可能会将其折叠为“/”,在这两种情况下,它都可能导致问题。您提到的
value=“[flowVars.year]”
应该是value=“#[flowVars.year]”
在这两个flowVars表达式中,您遗漏了月份和年份流量变量的
#
因此,在您的urlhttp://${consumptionAPI.host}:80/${consumptionAPI.report}/${consumptionAPI.year}/[flowVars.year]/${consumptionAPI.month}/[flowVars.month]/${consumptionAPI.csv}/code>中,无法计算该值
还要确保您在${}
中的url中提到的所有变量都在属性文件中定义好了,我将作为一个查询参数传入,并将其插入到构建的url中。我只是在您的属性中没有看到它…而您的路径将以“report/”开头,即7个字符。。。