Может ли кто-нибудь предложить мне, как обращаться к нескольким файлам xsl, используя int-xml: тег xslt-transformer, я попытался использовать код ниже, но это не могло мне помочь.
<int-xml:xpath-router id="responderRouter" input-channel="PQGetGroupMainScreen-Amisys-Channel">
<int-xml:xpath-expression expression="/GroupMainRequest/GroupId"/>
<int-xml:mapping value="Move" channel="items"/>
<int-xml:mapping value="Loan" channel="parameters"/>
</int-xml:xpath-router>
<int-xml:xslt-transformer input-channel="items" xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreen}" />
<int-xml:xslt-transformer input-channel="parameters" xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreenShow}" />
<int:service-activator ref="httpOutboundGatewayHandler" method="buildHttpOutboundGatewayRequest" />
<int-http:outbound-gateway url-expression="headers.restResourceUrl"
http-method-expression="headers.httpMethod"
expected-response-type="java.lang.String" >
</int-http:outbound-gateway>
</int:chain>
После того, как конфигурация была выполнена, когда я выполнил тестовый пример junit ниже, это ошибка, которую я получил в консоли. Пожалуйста, помогите мне в этом.
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-integration/Jobs/*.xml]
Offending resource: class path resource [CustomerService/JobDesigner-springintegration.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: The 'input-channel' attribute isn't allowed for a nested (e.g. inside a <chain/>) endpoint element: 'int-xml:xpath-router' with id='responderRouter'.
Offending resource: file [D:\New CSWorkspace\CustomerService\csServer\target\test-classes\CustomerService\spring-integration\Jobs\PQGetGroupMainScreen.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:271)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:196)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:255)
... 42 more
Похоже, вы используете платформу интеграции с весной. Вы должны предоставить всю информацию во время публикации вопроса. Похоже, что ваша конфигурация выглядит так:
<int:chain>
<int-xml:xpath-router id="responderRouter" input-channel="PQGetGroupMainScreen-Amisys-Channel">
<int-xml:xpath-expression expression="/GroupMainRequest/GroupId"/>
<int-xml:mapping value="Move" channel="items"/>
<int-xml:mapping value="Loan" channel="parameters"/>
</int-xml:xpath-router>
<int-xml:xslt-transformer input-channel="items" xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreen}" />
<int-xml:xslt-transformer input-channel="parameters" xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreenShow}" />
<int:service-activator ref="httpOutboundGatewayHandler" method="buildHttpOutboundGatewayRequest" />
<int-http:outbound-gateway url-expression="headers.restResourceUrl"
http-method-expression="headers.httpMethod"
expected-response-type="java.lang.String" >
</int-http:outbound-gateway>
</int:chain>
Маршрутизатор может существовать только как последний компонент цепи. Для получения информации см. Https://jira.spring.io/browse/INT-1066.
В соответствии с деталями исключения, вы должны изменить его на что-то вроде ниже
<int-xml:xpath-router id="responderRouter" input-channel="PQGetGroupMainScreen-Amisys-Channel" ouput-channel="chain">
<int-xml:xpath-expression expression="/GroupMainRequest/GroupId"/>
<int-xml:mapping value="Move" channel="items"/>
<int-xml:mapping value="Loan" channel="parameters"/>
</int-xml:xpath-router>
<int:chain input-channel="chain>
<int-xml:xslt-transformer xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreen}" />
<int-xml:xslt-transformer xsl-resource="${stylesheet.amisys.soaXml.PQGetGroupMainScreenShow}" />
<int:service-activator ref="httpOutboundGatewayHandler" method="buildHttpOutboundGatewayRequest" />
<int-http:outbound-gateway url-expression="headers.restResourceUrl"
http-method-expression="headers.httpMethod"
expected-response-type="java.lang.String" >
</int-http:outbound-gateway>
</int:chain>
ПРАВИЛО: Вы не должны указывать канал ввода/вывода для компонентов внутри цепочки. Они должны быть указаны в самой цепочке.