我遇到了“无法找到 XML 模式命名空间的 Spring NamespaceHandler”这个奇怪的问题。我在我的 spring 应用程序上下文中引用 GATE 命名空间。它是一个可执行 jar,其中一个 java 类实例化了 spring 应用程序上下文。当我通过 eclipse 在我的本地机器上测试它时它工作正常。但是,当我尝试将它作为带有 java 主类的可执行 jar 运行时,就会出现问题。
这是例外。
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://gate.ac.uk/ns/spring]
Offending resource: class path resource [applicationContext.xml]
如您所见,它在抱怨门命名空间。
这是应用程序上下文条目。
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:gate="http://gate.ac.uk/ns/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://gate.ac.uk/ns/spring http://gate.ac.uk/ns/spring.xsd">
架构是可访问的并且是有效的。
可执行 jar 包含与门相关的 jar 文件。这是门的 pom 文件条目
<dependency>
<groupId>gate</groupId>
<artifactId>gate</artifactId>
<version>5.1</version>
</dependency>
<dependency>
<groupId>gate</groupId>
<artifactId>gate-asm</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>gate</groupId>
<artifactId>gate-compiler-jdt</artifactId>
<version>1.0</version>
</dependency>
这是java代码片段
try{
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
this.processor = (TestProcessor) ctx.getBean("testProcessor");
}catch (Exception ex) {
ex.printStackTrace();
}
这是 Gate 文档参考。
http://gate.ac.uk/releases/gate-5.0-beta1-build3048-ALL/doc/tao/splitch3.html#x5-900003.27
不知道出了什么问题,任何指针将不胜感激。
谢谢