我正在设置我的应用程序属性,如下所示:
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:索引7的权限中的非法字符:http:// $ {consumptionAPI.host}:80 / $ {consumptionAPI.report} / $ {consumptionAPI.year} / [flowVars.year] / $ {consumptionAPI.month} / [flowVars.month] / $ {consumptionAPI.csv}
它似乎不喜欢URL中的第一个字符,但不确定原因。
顺便说一下,如果我对网址进行硬编码,那就可以了。
我错过了什么吗?答案 0 :(得分:0)
如果您没有为$ {consumptionAPI.year}提供价值,那么它会在路径中留下$和curley括号。这可能是一个问题,具体取决于您的文件系统。
或者它可能会将其折叠为&#34; //&#34;,在任何一种情况下,都可能导致问题。
答案 1 :(得分:0)
您提到了value="[flowVars.year]"
,它应该是value="#[flowVars.year]"
在两个flowVars表达式中,您都错过了#
月份和年份流量变量。
因此,在您的网址http://${consumptionAPI.host}:80/${consumptionAPI.report}/${consumptionAPI.year}/[flowVars.year]/${consumptionAPI.month}/[flowVars.month]/${consumptionAPI.csv}
中,它无法评估值
并确保您在${}
中的网址中提到的所有变量都已在您的属性文件中定义