首先看报错的提示信息:
1.有时候提示namespacehandler未找到
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://dubbo.apache.org/schema/dubbo]
2.有时候提示
[INFO ] 2015-06-28 11:16:06,690 --> [main] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:500): Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@d35f5f: startup date [Sun Jun 28 11:16:06 CST 2015]; root of context hierarchy
[INFO ] 2015-06-28 11:16:06,768 --> [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:315): Loading XML bean definitions from URL [file:META-INF/spring/server-spring.xml]
Exception in thread "main" [WARN ] 2015-06-28 11:16:08,214 --> [main] org.springframework.util.xml.SimpleSaxErrorHandler.warning(SimpleSaxErrorHandler.java:47): Ignored XML validation warning
org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 56; schema_reference.4: 无法读取方案文档 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是 <xsd:schema>。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
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:433)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:347)
提示很长我就不列举了
搜了很久大多数解决方法都是这样的:
1.maven是否依赖了dubbo
2.在DTD里添加一条指向本地dubbo.xsd文件的依赖
3.换dubbo版本升级到最新的就解决了
4.替换xlns依赖地址,从http://dubbo.apache.org/schema/dubbo换到http://code.alibabatech.com/schema/dubb
5.加一个spring-context-support的依赖
6.在dubbo的依赖加个export去掉spring的依赖
找了很久发现没有一个能解决的
最后试了下把spring的依赖去掉, 只留下dubbo,然后发现问题完美解决
好吧dubbo本身内置了对spring的依赖,再添加spring的依赖就会冲突,只是这错误提示完全引导错了方向呀