http静态处理程序资源库路径

时间:2016-12-02 03:12:28

标签: mule mule-studio

我在mule项目的src/main/resources下有一个html文件。如何在资源基础路径字段中提及html文件相对于我的项目目录的相对路径,以便http静态资源处理程序呈现html文件。我在资源库中给了${app.home}/src/main/resources,但是${app.home}指向了下面的目录

  

/用户/ XX / GIT中/项目/的 .mule /应用 /集成/ SRC /主/资源/

我不确定为什么要查看.mule / apps目录。

我的html文件在此路径下。

  

/Users/xx/git/projects/integration/src/main/resources/app.html

1 个答案:

答案 0 :(得分:2)

您的$ {app.home}指向正确的位置。不要忘记您运行的应用程序在Anypoint Studio中不是您的环境的应用程序服务器上存档(压缩),部署和运行。

因此,当它运行时,它会在另一个地方运行。你应该在这个新的地方拥有所有必要的文件。为了方便起见 - 使用资源而不是文件。让应用服务器携带文件所在的位置。

以下是显示目录 public 中的任何静态文件(作为资源)的简单示例 enter image description here

这是代码

<flow name="publicFilesHttpsFlow">
        <http:listener config-ref="HTTPS_listner" path="/StatusESB/public/*" doc:name="HTTP"/>
        <set-variable variableName="resourceName" value="#[message.inboundProperties['http.request.uri'].substring(18)]" doc:name="Variable"/>

        <set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream(flowVars.resourceName)]" doc:name="Set Payload"/>
        </flow>

在此示例中,目录src / main / resources / public下的任何文件都是资源,并且通过对应用程序服务器的deplyment来提供,将作为html页面显示。像

https://localhost/StatusESB/public/HelloWorld.html