首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法找到XML命名空间的[http://www.springframework.org/schema/aop]

无法找到XML命名空间的[http://www.springframework.org/schema/aop]
EN

Stack Overflow用户
提问于 2014-01-20 07:45:52
回答 1查看 5.4K关注 0票数 0

我正在使用Spring 架构进行日志记录,而事务 management.we使用WSO2-ESB容器来部署我们的服务。这里是我们尝试使用ClassPathXmlApplicationContext().读取的XML文件。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.2.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<!-- Complete AOP implementation -->
    <aop:aspectj-autoproxy />
    <!-- Aspect -->
    <bean id="logAspect" class="x.y.z.logging.aspect.LoggingAspect" />
    <aop:config>
        <aop:aspect id="aspectLoggging" ref="logAspect" >
        <!-- @Before -->
            <aop:pointcut id="pointCutBefore"
                expression="execution(* *(..))" />
            <aop:before method="logBefore" pointcut-ref="pointCutBefore" />
            <!-- @After -->
            <aop:pointcut id="pointCutAfter"
                expression="execution(* *(..))" />
            <aop:after method="logAfter" pointcut-ref="pointCutAfter" />
            <!-- @AfterReturning -->
            <aop:pointcut id="pointCutAfterReturning"
                expression="execution(* *(..))" />
            <aop:after-returning method="logAfterReturning" returning="result" 
                pointcut-ref="pointCutAfterReturning" />
            <!-- @AfterThrowing -->
            <aop:pointcut id="pointCutAfterThrowing"
                expression="execution(* *(..))" />
            <aop:after-throwing method="logAfterThrowing" throwing="error" 
                pointcut-ref="pointCutAfterThrowing"  />
        </aop:aspect>
    </aop:config>
</beans>

在启动WSO2-ESB服务器时发生了实际问题。这里我附上了Stacktrace:

代码语言:javascript
复制
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/aop]
Offending resource: file [C:\WSO2\Temp\WSO2ES~1.0\.\repository\conf\bundle-config\logger-aspect.xml]

    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1416)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
    at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
    at com.mi.logging.core.SpringLoggerUtil.setApplicationContext(SpringLoggerUtil.java:37)
    at com.mi.logging.aspect.activator.LogAspectActivator.start(LogAspectActivator.java:16)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
    ... 9 more

我正在使用spring.3.2.5版本,并且我已经保证所有依赖的jar都在类路径上。请帮助解决这个问题。如果您有任何建议或解决方案,请告诉我。提前通知。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 06:35:02

由于无法从WSO2-ESB提供的spring-aop-3.0.xsd中找到spring.framework_3.1.0.wso2v1.jar,的路径/位置,因此出现了此问题。

可以通过两种方式解决这一问题:

1)您可以添加最新版本的spring并设置jar文件的优先级。

参考文献

2)您只需遵循以下步骤即可。您必须将一些文件添加到spring.framework_3.1.0.wso2v1.jar文件的META文件夹中。

步骤如下所示。

创建一个新文件spring.schemas并添加如下内容。

代码语言:javascript
复制
http\://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd
http\://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd
http\://www.springframework.org/schema/aop/spring-aop-3.0.xsd=org/springframework/aop/config/spring-aop-3.0.xsd
http\://www.springframework.org/schema/aop/spring-aop-3.1.xsd=org/springframework/aop/config/spring-aop-3.1.xsd
http\://www.springframework.org/schema/aop/spring-aop-3.2.xsd=org/springframework/aop/config/spring-aop-3.2.xsd
http\://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-3.2.xsd

(2)创建一个新文件spring.handlers并添加如下内容。

代码语言:javascript
复制
http\://www.springframework.org/schema/aop=org.springframework.aop.config.AopNamespaceHandler

(3)创建一个新文件spring.tooling并添加如下内容。

代码语言:javascript
复制
# Tooling related information for the aop namespace
http\://www.springframework.org/schema/aop@name=aop Namespace
http\://www.springframework.org/schema/aop@prefix=aop
http\://www.springframework.org/schema/aop@icon=org/springframework/aop/config/spring-aop.gif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21228636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档