在jar文件中导入bean定义时出错

时间:2014-03-05 08:58:00

标签: java xml spring ant

我有两个项目。一个是Project-A,它包含数据库操作java代码和spring bean定义xml文件。结构是:

enter image description here

resources/base是源文件夹,configure是源文件夹中的包。 base-definitions.xml加载剩余的xml文件[dao-service-definitions.xml and transaction-definition.xml],如下所示。

基definitions.xml中

<import resource="classpath:configure/dao-service-definitions.xml"/>    
<import resource="classpath:configure/transaction-definition.xml"/>

然后我使用Ant构建了该项目的jar文件,包括spring bean definiton文件。我使用zipfileset在jar文件中设置xml文件目录。结构与上图相同。 resources\base\configure\[xml files]

的build.xml

<zipfileset dir="../resources/base/configure" includes="*.*" prefix="resources/base/configure" />

在另一个Project-B中,我导入了jar文件并设置了classpath。然后将Project-A中的base-definitions.xml导入到Project-B中的另一个xml中。

<import resource="classpath*:**/base-definitions.xml"/>

问题:

问题是base-definitions.xml已找到但无法找到导入的定义文件。

提取的错误:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath*:**/base-definitions.xml]
Failed to import bean definitions from URL location [classpath:configure/dao-service-definitions.xml]
class path resource [configure/dao-service-definitions.xml] cannot be opened because it does not exist

我做错了什么?谢谢你宝贵的时间。

1 个答案:

答案 0 :(得分:0)

在base-definitions.xml中,我更改了

<import resource="classpath:configure/dao-service-definitions.xml"/>    
<import resource="classpath:configure/transaction-definition.xml"/>

<import resource="classpath:resources/base/configure/dao-service-definitions.xml"/>
<import resource="classpath:resources/base/configure/transaction-definitions.xml"/>

现在正在运作。我发现,由于Project-A打算在另一个项目中用作jar文件,因此结构必须是绝对路径。