gpt4 book ai didi

java - 找不到 XML 模式命名空间 http ://www. springframework.org/schema/data/jpa 的 Spring NamespaceHandler

转载 作者:IT老高 更新时间:2023-10-28 13:55:08 26 4
gpt4 key购买 nike

我在由 maven 管理的 java 项目中使用 spring 和 hibernate。我使用以下命令创建了一个程序集(带有依赖项的 jar) mvn install assembly:assembly

现在,当我尝试使用以下命令运行我的主类时:java -cp xyz-1.0-SNAPSHOT-jar-with-dependencies.jar com.xyz.class 然后我得到以下错误:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/data/jpa]**
Offending resource: class path resource [xyz-component-scans-config.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:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:271)
.
.

我不明白为什么它无法找到 NamespaceHandler?因为我已经在 pom 中有以下依赖项。

    <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.0.RELEASE</version
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.0.2.RELEASE</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
<scope>compile</scope>
</dependency>

我确实尝试了以下线程中的建议,但它对我不起作用。 Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/data/jpa]

org.springframework.beans.factory.parsing.BeanDefinitionParsingException 的源代码

最佳答案

您最好使用 maven-shade-plugin 来创建带有依赖项的 jar。以下是如何使用插件的示例:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>shade</goal></goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.stackexchange.stackoverflow.ExecutableJar</mainClass>
</transformer>
<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>

根据我的经验,maven-shade-plugin 是创建 uber jar 的最佳方式。见我的其他 SO answer一个更完整的例子。请注意,此示例不需要任何 3rd 方 jar,但 maven-shade-plugin 确实可以很好地处理它们。试一试! :-)

关于java - 找不到 XML 模式命名空间 http ://www. springframework.org/schema/data/jpa 的 Spring NamespaceHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19615698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com