Springframework自定义嵌套标记问题
我正在尝试创建一个自定义的基于XSD的配置。我有一个自定义标记,它依次有另一个自定义标记。在分析内部标记时,未找到命名空间处理程序。它找不到架构的处理程序类 示例XML:Springframework自定义嵌套标记问题,spring,spring-bean,Spring,Spring Bean,我正在尝试创建一个自定义的基于XSD的配置。我有一个自定义标记,它依次有另一个自定义标记。在分析内部标记时,未找到命名空间处理程序。它找不到架构的处理程序类 示例XML: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:or="http://www.searsoutlet.com/sc
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:or="http://www.searsoutlet.com/schema/rest"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.mycompany.com/schema/rest http://www.mycompany.com/schema/rest-util-v1.0.xsd">
<or:springRestTemplate id="customTemplateTest" >
<or:basicAuth id="templateCreds" userName="restUser" password="restPassword" />
<or:httpHeaders >
<map>
<entry key="headerName" value="headerValue" />
</map>
</or:httpHeaders>
</or:springRestTemplate>
</beans>
我试图调试这个问题。我看到parserContext加载了所有Spring模式处理程序,beans模式除外
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
BeanDefinitionBuilder restTemplate = BeanDefinitionBuilder.rootBeanDefinition(SpringRestTemplateWithInterceptorsFactoryBean.class);
List<Element> credentials = DomUtils.getChildElementsByTagName(element, AUTH_CHILD_ELEMENT);
if (credentials != null && !credentials.isEmpty()) {
restTemplate.addPropertyValue("basicAuth", parserContext.getDelegate().parseCustomElement(credentials.get(0)));
}
List<Element> httpHeadersElements = DomUtils.getChildElementsByTagName(element, HTTP_HEADER_CHILD_ELEMENT);
if (httpHeadersElements != null && !httpHeadersElements.isEmpty()) {
httpHeadersElements = DomUtils.getChildElementsByTagName(httpHeadersElements.get(0), "map");
}
if (httpHeadersElements != null && !httpHeadersElements.isEmpty()) {
restTemplate.addPropertyValue("httpHeaders", parserContext.getDelegate().parseCustomElement(httpHeadersElements.get(0)));
}
return restTemplate.getBeanDefinition();
}
restTemplate.addPropertyValue("httpHeaders", parserContext.getDelegate().parseCustomElement(httpHeadersElements.get(0)));