2016-03-29 15 views
1

Ich schreibe Frühlingskonfigurationen für mein Projekt in JAVA. Ich bin neu im Frühling und nicht in der Lage, die Fehler im Zusammenhang mit dem Frühling zu verstehen. Ich habe die folgende Dateistruktur:Spring Bean Definitionsdatei mit relativer Pfad importieren

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

In META-INF/Anfrage-Details-EDX-upload.xml ich importieren folgendes:

<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" /> 

Aber ich erhalte den folgenden Fehler:

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] 

Anfrage-details.xml ist so etwas wie dieses:

<?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> 

Gibt es etwas Offensichtliches, das ich falsch mache, wenn ich den relativen Pfad importiere?

Danke.

+0

Können Sie den Text 'request-details.xml' angeben? –

+0

hinzugefügt die Anfrage-Details.xml – rightCoder

Antwort

0

Scheint, es ist falsche Schemadefinition. Versuchen Sie, namspace xmlns:context="http://www.springframework.org/schema/context" von <beans> Tag zu entfernen. Fügen Sie stattdessen xmlns:p="http://www.springframework.org/schema/p" Namespace hinzu. Außerdem sollten Sie alle context: Suffix mit p: Suffix ersetzen. Korrekter XML-Code, der eine Verknüpfung mit dem P-Namespace verwendet, sollte folgendermaßen aussehen:

<?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> 
+0

Danke für das hinweisend. Die Verwendung von p-namespace hat diesen Fehler behoben. Aber ich bekam weitere Fehler, benutzte stattdessen C-Namespace. Gut gearbeitet. Vielen Dank. – rightCoder