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表达式中,您遗漏了月份和年份流量变量的
#

因此,在您的url
http://${consumptionAPI.host}:80/${consumptionAPI.report}/${consumptionAPI.year}/[flowVars.year]/${consumptionAPI.month}/[flowVars.month]/${consumptionAPI.csv}/code>中,无法计算该值


还要确保您在
${}
中的url中提到的所有变量都在属性文件中定义好了,我将作为一个查询参数传入,并将其插入到构建的url中。我只是在您的属性中没有看到它…而您的路径将以“report/”开头,即7个字符。。。