DUBBO: xml file could not be resolved

xml is:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="platform_system_provider" owner="platform_system_provider" organization="llk" logger="slf4j" />

  ...

 

java

package com.example.test_dubbo;

import org.apache.commons.collections.map.MultiValueMap;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;

import java.util.*;

public class DubboXmlDetectorL {

    public static void main(String[] args) {

        String dubboXML = "E:\\dev\\erdp2\\erdp_system\\erdp_system_app\\src\\main\\resources\\dubbo.xml";
        String dubboXML2 = "E:\\dev\\ppm\\platform_system\\02_Src\\platform_system\\platform_system_provider\\src\\main\\resources\\dubbo-provider.xml";
        compareDubboXml(dubboXML, dubboXML2);
    }

    private static void compareDubboXml(String dubboXML, String dubboXML2) {
        System.out.println("left = " + dubboXML);
        Set list1 = getDobboXml(dubboXML);
        System.out.println("right = " + dubboXML2);
        Set list2 = getDobboXml(dubboXML2);

        System.out.println("left = " + list1);
        System.out.println("right = " + list2);

        Set set2 = new HashSet(list1);
        list1.removeAll(list2);
        System.out.println("list111 = " + list1);

        list2.removeAll(set2);
        System.out.println("list222 = " + list2);

    }

    private static Set getDobboXml(String dubboXML) {
        XmlBeanFactory xmlBeanFactory = new XmlBeanFactory(new FileSystemResource(dubboXML));
        String[] beanDefinitionNames = xmlBeanFactory.getBeanDefinitionNames();

        MultiValueMap multiValueMap = new MultiValueMap();
        for (int i = 0; i < beanDefinitionNames.length; i++) {
            String beanDefinitionName = beanDefinitionNames[i];
            BeanDefinition beanDefinition = xmlBeanFactory.getBeanDefinition(beanDefinitionName);
            Class<? extends BeanDefinition> aClass = beanDefinition.getClass();

            Object anInterface = beanDefinition.getAttribute("interface");
//            System.out.println("anInterface = " + anInterface);
            MutablePropertyValues propertyValues = beanDefinition.getPropertyValues();
            PropertyValue anInterface1 = propertyValues.getPropertyValue("interface");

            if (anInterface1 != null) {
                String  interfaceProp = (String) anInterface1.getValue();
                PropertyValue version = propertyValues.getPropertyValue("version");
                PropertyValue group = propertyValues.getPropertyValue("group");

                String key = interfaceProp;//+":"+ (version==null?"":version.getValue())+ ":" + (group==null?"":group.getValue());
                if (multiValueMap.containsKey(key)) {

                }
                multiValueMap.put(key, beanDefinitionName);
            }

        }

        Set set = multiValueMap.entrySet();
        for (Iterator iterator = set.iterator(); iterator.hasNext(); ) {
            Object entry =  iterator.next();
            if (entry instanceof Map.Entry) {
                ArrayList value = (ArrayList) ((Map.Entry) entry).getValue();
                if (value.size() > 1) {
                    System.out.println("                   = " + entry );
                }
            }
        }

        return multiValueMap.keySet();
    }

    private static void test1() {
        String xmls = "E:\\dev\\erdp2\\erdp_discuss\\erdp_discuss_app\\src\\main\\resources\\dubbo.xml\n" +
                "E:\\dev\\erdp2\\erdp_doc\\erdp_doc_app\\src\\main\\resources\\dubbo.xml\n" +
                "E:\\dev\\erdp2\\erdp_project\\erdp_project_app\\src\\main\\resources\\dubbo.xml\n" +
                "E:\\dev\\erdp2\\erdp_scheduler\\erdp_scheduler_app\\src\\main\\resources\\dubbo.xml\n" +
                "E:\\dev\\erdp2\\erdp_system\\erdp_system_app\\src\\main\\resources\\dubbo.xml\n" +
                "E:\\dev\\erdp2\\erdp_workflow\\erdp_workflow_app\\src\\main\\resources\\dubbo.xml";
        String[] split = xmls.split("\n");
        for (int i = 0; i < split.length; i++) {
            String s = split[i];
            System.out.println("XML = " + s);
            detectDobboXml(s);
        }

        String dubboXML = "E:\\dev\\erdp2\\erdp_doc\\erdp_doc_app\\src\\main\\resources\\dubbo.xml";
        dubboXML = "dubbo.xml";
        dubboXML = "E:\\dev\\erdp2\\test_nacos\\src\\test\\java\\dubbo.xml";
//        detectDobboXml(dubboXML);
    }

    private static void detectDobboXml(String dubboXML) {
        XmlBeanFactory xmlBeanFactory = new XmlBeanFactory(new FileSystemResource(dubboXML));
        String[] beanDefinitionNames = xmlBeanFactory.getBeanDefinitionNames();

//        DefaultListableBeanFactory bdr = new DefaultListableBeanFactory();
//        bdr.set
//        XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(bdr);
//        NamespaceHandlerResolver namespaceHandlerResolver = xmlBeanDefinitionReader.getNamespaceHandlerResolver();
//        System.out.println("namespaceHandlerResolver = " + namespaceHandlerResolver);
//        NamespaceHandlerResolver nsr = new DefaultNamespaceHandlerResolver();
//        xmlBeanDefinitionReader.setNamespaceHandlerResolver(nsr);

        MultiValueMap multiValueMap = new MultiValueMap();
        for (int i = 0; i < beanDefinitionNames.length; i++) {
            String beanDefinitionName = beanDefinitionNames[i];
//            System.out.println("beanDefinitionName = " + beanDefinitionName);
            BeanDefinition beanDefinition = xmlBeanFactory.getBeanDefinition(beanDefinitionName);
//            System.out.println("beanDefinition = " + beanDefinition);
            Class<? extends BeanDefinition> aClass = beanDefinition.getClass();

            Object anInterface = beanDefinition.getAttribute("interface");
//            System.out.println("anInterface = " + anInterface);
            MutablePropertyValues propertyValues = beanDefinition.getPropertyValues();
            PropertyValue anInterface1 = propertyValues.getPropertyValue("interface");
//            System.out.println("anInterface1 = " + anInterface1);
//            propertyValues.getPropertyValueList();

            if (anInterface1 != null) {
                String  interfaceProp = (String) anInterface1.getValue();
                PropertyValue version = propertyValues.getPropertyValue("version");
                PropertyValue group = propertyValues.getPropertyValue("group");

                String key = interfaceProp+":"+ (version==null?"":version.getValue())+ ":" + (group==null?"":group.getValue());
//            System.out.println("aClass = " + aClass);
                if (multiValueMap.containsKey(key)) {
//                    multiValueMap.put(interfaceProp, beanDefinitionName);
//                    System.out.println("beanDefinitionName = " + beanDefinitionName + " interface = " + interfaceProp);
//                    System.out.println(" interface = " + interfaceProp + "  beanDefinitionNames = " + multiValueMap.get(interfaceProp));
                }
                multiValueMap.put(key, beanDefinitionName);
//                multiValueMap.put(interfaceProp, aClass);
            }

        }

//        Object dubbo = xmlBeanFactory.getBean("dubbo");
//        System.out.println("dubbo = " + dubbo);
//        BeanDefinition dubbo1 = xmlBeanFactory.getBeanDefinition("dubbo");
//        System.out.println("dubbo1 = " + dubbo1.getClass());

        Set set = multiValueMap.entrySet();
        for (Iterator iterator = set.iterator(); iterator.hasNext(); ) {
            Object entry =  iterator.next();
//            System.out.println("entry = " + entry + " v " + multiValueMap.get(entry));
            if (entry instanceof Map.Entry) {
                ArrayList value = (ArrayList) ((Map.Entry) entry).getValue();
//                System.out.println("value = " + value.size());
                if (value.size() > 1) {
                    System.out.println("                   = " + entry );
                }
            }
//            Collection collection = multiValueMap.getCollection(entry);
//            if (collection != null && collection.size() > 1) {
//                System.out.println("key = " + entry);
//                dumpCollection(collection);
//            }
        }

//        Collection values = multiValueMap.values();
//        System.out.println("values = " + values);
    }

    private static void dumpCollection(Collection values) {
        for (Iterator iterator = values.iterator(); iterator.hasNext(); ) {
            Object next = iterator.next();
            System.out.println("next = " + next);
        }
    }

    private static void test() {
        String dubboXML = "E:\\dev\\erdp2\\erdp_doc\\erdp_doc_app\\src\\main\\resources\\dubbo.xml";
        dubboXML = "dubbo.xml";
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                new String[]{dubboXML});
        context.start();

        ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
        String[] beanDefinitionNames = beanFactory.getBeanDefinitionNames();
        for (int i = 0; i < beanDefinitionNames.length; i++) {
            String beanDefinitionName = beanDefinitionNames[i];
            System.out.println("beanDefinitionName = " + beanDefinitionName);
        }
    }
}

Error: dubbo wildcard match is very comprehensive, but the elements can not find 'dubbo: service' statement.

10 : 05 : 44.125 [main] WARN osbfxml.XmlBeanDefinitionReader - Ignored XML Validation warning 
org.xml.sax.SAXParseException:. Schema_reference 4 : Unable to read the program document ' http://code.alibabatech.com/schema/dubbo/dubbo .xsd ' , the reason of 1 ) Unable to find a document; 2 ) can not read the document; . 3 root element) of the document is not <XSD: Schema> . 
    com.sun.org.apache.xerces AT. Internal .util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java: 203 ) 
    AT com.sun.org.apache.xerces. Internal .util.ErrorHandlerWrapper.warning (ErrorHandlerWrapper.java:99)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:392)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:306)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4158)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaWarning(XSDHandler.java:4149)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument1(XSDHandler.java:2491)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2193)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:578)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2447)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1768)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:761)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:434)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:79)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:67)
    at com.example.test_nacos.DetectorL.detectDobboXml(DetectorL.java:43)
    at com.example.test_nacos.DetectorL.main(DetectorL.java:33)
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1220)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:984)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:148)
    at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:583)
    at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:686)
    at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaDOMParser.parse(SchemaDOMParser.java:530)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2181)
    ... 24 common frames omitted
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 8 in XML document from file [E:\dev\erdp2\erdp_discuss\erdp_discuss_app\src\main\resources\dubbo.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 51; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明。
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:79)
    org.springframework.beans.factory.xml.XmlBeanFactory AT. <the init> (XmlBeanFactory.java: 67 ) 
    AT com.example.test_nacos.DetectorL.detectDobboXml (DetectorL.java: 43 is ) 
    AT com.example.test_nacos.DetectorL.main (DetectorL.java: 33 is ) 
Caused by: org.xml.sax.SAXParseException; the lineNumber: . 8 ; the columnNumber: 51 is ; CVC-Complex-type. 2.4 .c: wildcard match very comprehensive, but can not find the element ' Dubbo: file application ' statement. 
    com.sun.org.apache.xerces AT. Internal .util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java: 203 ) 
    . AT com.sun.org.apache.xerces Internal .util.ErrorHandlerWrapper.error (ErrorHandlerWrapper.java: 134 )
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:453)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3231)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1912)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:761)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:434)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
    ... 6 more
View Code

During startup, the feeling will go to download, but the download for a while to download but was unsuccessful. .

 


In fact, Spring provides a mechanism to load the XSD file from the local default. Closer inspection, it seems there is a problem namespace is dubbo upgrade from 2.6.5 to 2.7.1 caused it? code.alibabatech.com into dubbo.apache.org, or not:

Unable to locate Spring NamespaceHandler for XML schema namespace [http://dubbo.apache.org/schema/dubbo]

Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://dubbo.apache.org/schema/dubbo]
Offending resource: file [E:\dev\erdp2\erdp_system\erdp_system_app\src\main\resources\dubbo.xml]

    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:72)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:119)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:111)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:281)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1363)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1352)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:179)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:96)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:513)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:393)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:79)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:67)
    at com.example.test_nacos.DetectorL.getDobboXml(DetectorL.java:42)
    at com.example.test_nacos.DetectorL.compareDubboXml(DetectorL.java:25)
    at com.example.test_nacos.DetectorL.main(DetectorL.java:20)
View Code

 

I think of it before reading the source code when the spring, corresponding to each xml namespace, spring requires a NamespaceHandler, such as Context needs ContextNamespaceHandler.
Do you want to modify the jar spring.handlers / spring.schemas file? Check the spring-context-5.1.5.RELEASE \ META- INF \ spring.handlers, found normal

http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler
http\://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler
http\://www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler
http\://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler
http\://www.springframework.org/schema/cache=org.springframework.cache.config.CacheNamespaceHandler

 

Suddenly I thought, dubbo-jar are not introduced it!

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>

Adding just fine!

 

-------------------------------------------------- -------------------------------------------------- --------------------------------------------
summarize

This problem is usually caused due to an upgrade, especially after some jar before the upgrade is not compatible with the version will appear.
But Spring is very intimate, the old version of the XSD files are all put. This can prevent the escalation of the Spring version, and configuration file or use an older version of the XSD file, and then off the net, the application will not start.

I saw spring-context-5.1.5.RELEASE \ META-INF \ spring.schemas After unpacking dubbo jar:

Visible, basically everything. But only a xsd:

 

So, if the new jar, and then the old xml configuration namespace, you will still go to download xsd. download

 


参考
https://dslztx.github.io/blog/2019/02/20/Unable-to-locate-Spring-NamespaceHandler-for-XML-schema-namespace/
https://www.jianshu.com/p/b16a4384dfdb
https://blog.csdn.net/wcf2010/article/details/86229222
https://blog.csdn.net/wxydaisy/article/details/40650405



Guess you like

Origin www.cnblogs.com/FlyAway2013/p/10948692.html