【问题标题】:After deployment JDBC.Properties outside .Jar not found by Spring anymore在 Spring 不再找到 .Jar 之外部署 JDBC.Properties 之后
【发布时间】:2011-06-17 05:34:15
【问题描述】:

最近出现了将数据库设置外包给 Spring applicationContext.xml 的要求。因此,我们希望在构建的 jar 之外有一个 jdbc.properties 文件,以便用户可以轻松更改 jdbc.settings。到目前为止,在 Eclipse 工作区中一切正常,但是一旦我用 ant 构建发行版,applicationContext.xml 就再也找不到 jdbc.properties。

applicationContext.xml 如下所示:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <value>classpath:jdbc.properties</value>
  </property>
</bean>

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  <property name="driverClassName" value="${jdbc.driver}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.user}"/>
  <property name="password" value="${jdbc.password}"/>
</bean>

在 Eclipse 中,我使用了以下类路径,因此会找到 jdbc.properties(放置在 Eclipse 项目文件夹“config”中):

类路径文件:

<classpath>
        ...
 <classpathentry kind="src" path="config"/>
        ...
</classpath>

直到这里一切正常。现在我用 Ant 构建项目。 project.jar 被创建,它旁边还有一个单独的配置文件夹以及其中的 jdbc.properties 文件。在 Manifest.mf 中有一个条目:

config/jdbc.properties

但是当我现在启动服务器时,找不到 jdbc.properties。我注意到,当我将 Manifest.mf 条目更改为:

config/.

它又可以正常工作了。但我不明白为什么这是不同的。谁能解释我这种行为?或者甚至可能知道我做错了什么?显然我必须以某种方式更改 Ant 文件,所以他只是在清单文件中添加了 config 文件夹,而不仅仅是 jdbc.properties 文件本身?

提前谢谢你!

【问题讨论】:

    标签: java spring ant properties classpath


    【解决方案1】:

    解决方案是在 Ant-buildscript 中定义一个类路径元素。

    <classpath>
      <pathelement location="${dir.build}/config/."/>
    <classpath>
    

    不幸的是我仍然不知道,为什么直接引用文件也没有解决这个问题。

    【讨论】:

      【解决方案2】:

      类路径保存 jar 文件的位置以及保存类文件和其他资源的目录。您应该在类路径中指定保存属性文件的目录的路径,而不是属性文件本身的路径。也就是说,您的清单条目应该是“config”。

      【讨论】:

      • 对不起,我不明白你的意思。在我的类路径中,只有目录的路径,它包含属性文件,因为“config”是属性文件所在的文件夹。这个条目是由 eclipse 自动生成的。据我了解,我应该尝试更改 ant 文件,manifest.mf 仅指向目录“config”而不是 jdbc.properties 文件本身,就像我在示例中指出的那样。
      猜你喜欢
      • 1970-01-01
      • 2014-08-21
      • 2019-06-12
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2020-10-04
      相关资源
      最近更新 更多