我有两个项目。一个是Project-A,它包含数据库操作java代码和spring bean定义xml文件。结构是:
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
我做错了什么?谢谢你宝贵的时间。
答案 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文件,因此结构必须是绝对路径。