对 Mule Studio 中的属性应用 maven 筛选器



我有一个骡子工作室项目,我已经为不同环境的属性定义了maven过滤器。

但是,Mule studio 无法为默认环境(本地)应用属性,因此应用程序在启动时失败并出现以下错误。

[02-18 20:24:32] ERROR DefaultMuleApplication [main]: null
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'invoke-cj-ws' defined in null: Could not resolve placeholder 'prop1' in string value "${cj.auth.key}"
at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:209)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:174)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:151)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:669)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
at org.mule.config.spring.SpringRegistry.doInitialise(SpringRegistry.java:89)
at org.mule.registry.AbstractRegistry.initialise(AbstractRegistry.java:109)
at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringRegistry(SpringXmlConfigurationBuilder.java:119)
at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(SpringXmlConfigurationBuilder.java:73)
at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:46)
at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78)
at org.mule.config.builders.AutoConfigurationBuilder.autoConfigure(AutoConfigurationBuilder.java:101)
at org.mule.config.builders.AutoConfigurationBuilder.doConfigure(AutoConfigurationBuilder.java:57)
at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:46)
at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78)
at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:84)
at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:207)
at org.mule.module.launcher.application.ApplicationWrapper.init(ApplicationWrapper.java:64)
at org.mule.module.launcher.DefaultMuleDeployer.deploy(DefaultMuleDeployer.java:47)
at org.mule.tooling.server.application.ApplicationDeployer.run(ApplicationDeployer.java:58)
at org.mule.tooling.server.application.ApplicationDeployer.main(ApplicationDeployer.java:91)

有没有人在MuleStudio中使用了成功的过滤器,或者使用了解决此问题的替代方法?

如果您在pom中定义配置文件.xml(或者如果您喜欢在settings.xml中)并提及应为您加载具有特定环境所需过滤器属性的构建标记,则可以在运行MVN Package时验证这一点,并在jar内查看以检查属性文件是否已打包。因此,为了帮助您,下面的配置文件部分

 <profiles>
  <profile> 
    <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <filters>
           <filter>src/main/resources/build/dev.properties</filter>
           </filters>
           <resources>
            <resource>
             <filtering>true</filtering>
             <directory>src/main/resources</directory>
             <includes>
              <include>**/*.xml</include>
              <include>*.properties</include>
             </includes>
            </resource>
           </resources>
          </build>
  </profile>
 <profiles>
</project>

此外,您需要在 src/main/resources 中拥有一个具有动态值的属性文件,并且根据在 maven 构建期间传递的 env 参数,它将从 src/main/resources/build 文件夹中占用相应的属性文件。

最新更新