Java Spring3.0:找不到XML架构命名空间的SpringNamespaceHandler

Java Spring3.0:找不到XML架构命名空间的SpringNamespaceHandler,java,spring,aop,Java,Spring,Aop,我的设置相当简单:我有一个web前端,后端是弹簧连接的 我正在使用AOP在我的rpc服务上添加一层安全性 除了web应用程序在启动时中止之外,一切都很好: [java] SEVERE: Context initialization failed [java] org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate S

我的设置相当简单:我有一个web前端,后端是弹簧连接的

我正在使用AOP在我的rpc服务上添加一层安全性

除了web应用程序在启动时中止之外,一切都很好:

[java] SEVERE: Context initialization failed [java] org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/aop] [java] Offending resource: ServletContext resource [/WEB-INF/gwthandler-servlet.xml]
您正在使用什么IDE(如果有的话)?这是在IDE中工作时发生的,还是仅在部署时发生的?如果是部署,这可能是因为您使用的任何部署机制(maven assembly生成一个具有依赖项的JAR)都会将所有JAR折叠到一个目录中,Spring模式和处理程序文件会相互覆盖。

您是否尝试将所有JAR直接放在
WEB-INF/lib
目录中而不是子目录中那是什么

没有
WEB-INF/lib/spring/org.springframework.aop-3.0.0.RELEASE.jar
,只有
WEB-INF/lib/org.springframework.aop-3.0.0.RELEASE.jar


和其他罐子一样。

如果其他人遇到这个问题,我只是使用Eclipse;通过右键单击操作运行项目。此错误发生在J2EE视图中,但没有发生在Java视图中。不确定-假设将库添加到正确的“lib”目录


我还使用了一个Maven项目,允许m2eclipse管理依赖关系。

我对spring 3.0.2和spring-beans-3.0.xsd也有同样的问题

我的解决方案:

在源文件夹中创建META-INF/spring.schemas文件,并复制所有必要的定义。也创建spring.handlers

我认为PluggableSchemaResolver类工作不正常

从javadoc:

默认情况下,此类将使用META-INF/spring.schemas模式在类路径中查找映射文件,该模式允许类路径上同时存在多个文件

但在我的例子中,这个类只读取第一个spring.schemas find

格雷廷斯。 pacovr


我在使用maven shade插件时遇到了类似的问题。我在上面的示例页面中找到了解决问题的方法。

您也可以尝试使用one jar maven插件,它为我们解决了问题。只需按照。

中的说明操作,我遇到了类似的错误,但在新创建的Roo项目中引用了SpringWebFlow。我的解决方案是(Project)/右键单击/Maven/启用Maven依赖项(然后重新启动并重新发布到Tomcat)

看来STS或m2Eclipse未能将所有SpringWebFlowJAR推送到web应用程序库目录中。我不知道为什么。但是启用maven依赖处理,然后重建似乎可以解决问题;webflowjar最终被发布,因此它可以找到模式名称空间引用


我通过浏览web应用发布到的tomcat目录来研究这个问题,当它运行时点击web-INF/lib/并注意到它缺少webflow jar文件。

这个技巧对我也有效:在Eclipse中,右键单击项目,然后Maven>更新依赖项。

如果使用
mvn
,检查
pom.xml
中是否有正确的作用域(如果已定义)。我曾经错误地将其设置为测试,但在运行时需要它。

在使用maven shade插件时遇到此错误,解决方案包括:

META-INF/spring.schemas

META-INF/spring.handlers

maven shade插件中的变压器在构建时

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>

org.apache.maven.plugins
)

确保已解决所有依赖项 在spring教程之后,我第一次尝试AOP时遇到了这个问题。 我的问题是在我的类路径中没有
springaop.jar
。本教程列出了我必须添加的所有其他依赖项,即:

  • aspectjrt.jar
  • aspectjweaver.jar
  • aspectj.jar
  • aopalliance.jar
但是那一个不见了。在原来的问题中,还有一个问题会导致这种症状


我正在使用Eclipse(neon)、JavaSE8、beans 3.0、SpringAOP3.0和Spring4.3.4。问题出现在Java视图中,而不是JEE视图中,并且在尝试使用右键菜单->运行方式->Java应用程序运行应用程序时。

使用IntelliJ作为IDE。IDE中没有问题,一切正常。我正在使用ant组装web应用程序,上面的列表来自war目录。+1到delfuego链接到MASSEMBLY-360;这正是我面临的问题。如果使用Spring 2.5.6,您可以通过使用该版本附带的一体式“Spring”JAR文件(而不是单独使用Spring core、Spring beans、Spring jdbc等)来解决这个问题。是否有一个简单的解决方案?+1适用于delfuego和Andrew Swan。大约在2012年,我遇到了同样的事情。是的——根据这一点,
WEB-INF/lib
下的子目录无效。从来都不知道这是怎么回事。。。很高兴现在知道。顺便说一句,我怀疑它在IntelliJ中工作良好的原因是IntelliJ使用了自定义类加载器……是的,这解决了它。IntelliJ没有抱怨,因为它在库部分的正下方添加了JAR。还有一点需要注意的是,ant的复制任务有一个“展平”参数,非常适合此任务。一旦类位于类路径中,只要包名正确,所有类都应该可用。文件夹名称应该无关紧要。这是IDE的一个问题。。如果我错了,请提出建议。+1用于提及PluggableSchemaResolver。这里有一篇关于这个主题的好文章:是的,谢谢你,在所有spring jar中合并所有META-INF/spring.schema(META-INF/spring.handlers也是如此)对我来说是一个解决方案。与汇编插件相关的bug中的一条注释指向shade插件正在工作。我转换成了shade插件,让所有的东西都在n中重新运行
./WEB-INF/lib
./WEB-INF/lib/aopalliance-alpha1.jar
./WEB-INF/lib/aspectj-1.6.6.jar
./WEB-INF/lib/commons-collections.jar
./WEB-INF/lib/commons-logging.jar
./WEB-INF/lib/ehcache-core-1.7.0.jar
./WEB-INF/lib/ejb3-persistence.jar
./WEB-INF/lib/hibernate
./WEB-INF/lib/hibernate/antlr.jar
./WEB-INF/lib/hibernate/asm.jar
./WEB-INF/lib/hibernate/bsh-2.0b1.jar
./WEB-INF/lib/hibernate/cglib.jar
./WEB-INF/lib/hibernate/dom4j.jar
./WEB-INF/lib/hibernate/freemarker.jar
./WEB-INF/lib/hibernate/hibernate-annotations.jar
./WEB-INF/lib/hibernate/hibernate-shards.jar
./WEB-INF/lib/hibernate/hibernate-tools.jar
./WEB-INF/lib/hibernate/hibernate.jar
./WEB-INF/lib/hibernate/jtidy-r8-20060801.jar
./WEB-INF/lib/jabsorb
./WEB-INF/lib/jabsorb/jabsorb-1.3.1.jar
./WEB-INF/lib/jta.jar
./WEB-INF/lib/jyaml-1.3.jar
./WEB-INF/lib/postgresql-8.4-701.jdbc4.jar
./WEB-INF/lib/sjsxp.jar
./WEB-INF/lib/spring
./WEB-INF/lib/spring/org.springframework.aop-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.asm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.aspects-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.beans-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context.support-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.core-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.expression-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument.tomcat-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jdbc-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jms-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.orm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.oxm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.test-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.transaction-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.portlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.servlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.struts-3.0.0.RELEASE.jar
./WEB-INF/lib/testng-5.11-jdk15.jar
./WEB-INF/web.xml
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>