在 Spring 配置中使用 Mule 表达式

发布于 2024-12-31 23:41:44 字数 1112 浏览 0 评论 0原文

我正在设置一个 Mule 应用程序,在其中,我想使用 Spring bean 来连接 EHCache 和 JDBC 连接。我不想将配置信息放在我创建的每个 Mule 应用程序中,而是想使用位于 $mule_home/conf 的属性文件。

我知道如何使用 Mule 表达式访问 Mule 主目录(#[mule:context.homeDir]),但是当我尝试将该表达式放入我链接的 context.xml 文件中时我的 mule 应用程序配置,并启动服务器,我得到一个

java.io.FileNotFoundException: #[mule:context.homeDir]\conf\jdbc.properties (系统找不到指定的路径)

甚至如果我在 mule 配置中创建一个单独的属性 ${homeDir} ,其值为 #[mule:context.homeDir] 它会给我同样的错误,除了${homeDir} 无法解析。

我已经打开日志记录,可以看到它连接了属性 ${homeDir},但属性占位符似乎不想解析它。我已经尝试过这两种方法并使用 PropertyPlaceholderConfigurer 类的原始 bean:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>file:#[mule:context.homeDir]/conf/jdbc.properties</value>
            <value>file:#[mule:context.homeDir]/conf/standalone-ehcache.conf</value>
            <value>classpath:gateway.properties</value>
        </list>
    </property>
</bean>

I'm setting up a Mule application and in it, I wanted to use Spring beans to wire up an EHCache and JDBC connection. Instead of putting the configuration information in each Mule application I create, I wanted to use a properties file which would be located at $mule_home/conf.

I know how to use a Mule expression to access the Mule home directory(#[mule:context.homeDir]) but when I attempt to put that expression inside my context.xml file, which I link in my mule application configuration, and start up the server, I get a

java.io.FileNotFoundException: #[mule:context.homeDir]\conf\jdbc.properties (The system cannot find the path specified)

Even if I create a seperate property in the mule configuration, ${homeDir} which has a value of #[mule:context.homeDir] it gives me the same error, except with ${homeDir} as being unable to resolve.

I've turned logging up and can see it wiring up the property ${homeDir}, but it seems the the property-placeholder does not want to resolve it. I've tried both and using a raw bean of the class of PropertyPlaceholderConfigurer:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>file:#[mule:context.homeDir]/conf/jdbc.properties</value>
            <value>file:#[mule:context.homeDir]/conf/standalone-ehcache.conf</value>
            <value>classpath:gateway.properties</value>
        </list>
    </property>
</bean>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绮筵 2025-01-07 23:41:44

${MULE_HOME}/conf 位于 Mule 的类路径中,因此以下内容应该有效:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <list>
        <value>classpath:jdbc.properties</value>
        <value>classpath:standalone-ehcache.conf</value>
        <value>classpath:gateway.properties</value>
    </list>
  </property>
</bean>

${MULE_HOME}/conf is on Mule's classpath so the following should work:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <list>
        <value>classpath:jdbc.properties</value>
        <value>classpath:standalone-ehcache.conf</value>
        <value>classpath:gateway.properties</value>
    </list>
  </property>
</bean>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文