簡體   English   中英

使用相對路徑導入Spring bean定義文件

[英]Importing Spring bean definition file using relative path

我正在用JAVA為我的項目編寫彈簧配置。 我是spring的新手,無法解決與spring相關的錯誤。 我具有以下文件結構:

ProjectName
--> src
    --> META-INF
        --> jobs
            -->edx
               -->request-details.xml
            -->clients.xml
            -->daos.xml
            -->environment.xml
        --> request-details-edx-upload.xml

在META-INF / request-details-edx-upload.xml中,我導入以下內容:

<import resource="jobs/environment.xml" />
<import resource="classpath:META-INF/jobs/edx/request-details.xml" />
<import resource="jobs/clients.xml" />
<import resource="jobs/daos.xml" />

但是我收到以下錯誤:

Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:META-INF/jobs/edx/request-details.xml]
Offending resource: class path resource [META-INF/request-details-edx-upload.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException:  Configuration problem: Cannot locate BeanDefinitionDecorator for attribute [dataSetName]
Offending resource: class path resource [META-INF/jobs/edx/request-details.xml]

request-details.xml是這樣的:

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
    ">
 <!-- RequestDetails EDX data upload dao -->
 <bean id="requestDetailsDataUploadDao" class="com.amazon.edx.dao.DataUploadDaoEdxClientImpl"
 context:providerName="scot"
 context:subjectName="${edxRequestDetailsSubject}"
 context:dataSetName="by-01-day"
 context:keyName="${regionValue}"
 context:edxClient-ref="edxClient"
 />
 <util:list id="requestDetailsColumnMetaData" value-type="com.amazon.edx.transformer.ColumnMetaData">
        <ref bean="Column"/>
        <ref bean="Column1"/>                   
 </util:list>
<bean id="Column" class="com.amazon.edx.transformer.ColumnMetaData"
    context:attributeName="Id"
    context:dataType="VARCHAR2"
    context:columnDisplayName="IMS"
/>    
<bean id="Column1" class="com.amazon.edx.transformer.ColumnMetaData"
    context:attributeName="id1"
    context:dataType="VARCHAR2"
    context:columnDisplayName="IMS"
/>
<util:constant id="tabDelimiter"
        static-field="com.amazon.edx.transformer.Delimiters.TAB_DELIMITER"    />


 <!-- RequestDetails data backup --> 
<bean id="requestDetailsDataTransformer" class="com.amazon.edx.transformer.DataTransformerImpl"
context:dataFlattener-ref="requestDetailsDataFlattener"
context:columnMetadata-ref="requestDetailsColumnMetaData"
context:delimiter="{tabDelimiter}"
/>
 </beans> 

導入相對路徑是否有明顯的錯誤?

謝謝。

似乎是錯誤的架構定義。 嘗試從<beans>標記中刪除namspace xmlns:context="http://www.springframework.org/schema/context" 而是添加xmlns:p="http://www.springframework.org/schema/p"名稱空間。 另外,您應該將所有context:后綴替換為p:后綴。 使用帶有p-namespace的快捷方式的正確xml應該如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-3.0.xsd">

   <!-- RequestDetails EDX data upload dao -->
   <bean id="requestDetailsDataUploadDao" class="com.amazon.edx.dao.DataUploadDaoEdxClientImpl"
      p:providerName="scot"
      p:subjectName="${edxRequestDetailsSubject}"
      p:dataSetName="by-01-day"
      p:keyName="${regionValue}"
      p:edxClient-ref="edxClient"
   />

   ....

</beans>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM