Spring 3 @PropertySource在Wildfly 8模块中找不到属性文件

时间:2016-04-20 23:53:59

标签: java spring wildfly-8

我正在尝试使用Spring的@PropertySource注释加载属性文件。属性文件存储在Wildfly 8模块中。我得到的错误信息是:

class path resource [campaigner.properties] cannot be opened because it does not exist

这是Java代码,由应用程序的服务使用。

@Configuration
@PropertySource("classpath:campaigner.properties")
class ServiceConfigImpl implements ServiceConfig
{
  @Autowired
  private Environment env;

  @Bean(name = "serviceConfig")
  public ServiceConfig getServiceConfig()
  {
    return new ServiceConfigImpl(this.env);
  }
}

这是我的jboss-deployment-structure.xml,我将其放在.ear文件的META-INF目录中。

<jboss-deployment-structure> 
  <deployment> 
    <dependencies> 
      <module name="com.dr_dee_sw.campaigner" /> 
    </dependencies> 
  </deployment> 
</jboss-deployment-structure>

我还将一个MANIFEST.MF文件放在META-INF目录

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_71-b14 (Oracle Corporation)
Dependencies: com.dr_dee_sw.campaigner

这是我的模块文件,我将它放在WILDFLY_HOME \ modules \ com \ dr_dee_sw \ campaigner \ main目录中,以及campaigner.properties文件

<module xmlns="urn:jboss:module:1.1" name="com.dr_dee_sw.campaigner">
  <resources> 
    <resource-root path="."/> 
  </resources> 
</module>

我错过了什么?

1 个答案:

答案 0 :(得分:0)

此页面引导我回答:https://www.javacodegeeks.com/2012/09/jboss-as-7-classloading-explained.html。我的jboss-deployment-structure.xml错了。我在EAR文件中有一个EJB-JAR文件,它需要成为该文件的焦点。所以,我不得不从使用&lt; deployment&gt;切换到&lt;子部署&gt;如下图所示。

(defn remove-dupes [v]
  (loop [[[_ i2 :as pair] & xs :as v] v present #{} res []]
    (cond (empty? v) res
          (present i2) (recur xs present res)
          :else (recur xs (conj present i2) (conj res pair)))))