Springframework自定义嵌套标记问题

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

我正在尝试创建一个自定义的基于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/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)));