java 线程“main”中的Maven项目异常java.lang.NoClassDefFoundError:org/springframework/core/DefaultParameterNameDiscoverer
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25642845/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Maven project Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer
提问by Lawrence
Am running the class below in my Maven project
我在我的 Maven 项目中运行下面的类
package com.zra.test;
import javax.xml.ws.Endpoint;
import com.zra.proxy.NickGateway;
public class ProxyPublisher {
public static void main(String args[]){
try {
System.out.println("Publishing ProxyService at http://localhost:8280/ZRAProxy/ZRAProxy...");
Endpoint.publish("http://localhost:8280/ZRAProxy/ZRAProxy", new NickGateway());
System.out.println("Proxy service successfully published on http://localhost:8280/ZRAProxy/ZRAProxy");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception publishing webservice");
}
}
}
I want to test my application but i get the below error
我想测试我的应用程序,但出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.<init>(AbstractAutowireCapableBeanFactory.java:123)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.<init>(AbstractAutowireCapableBeanFactory.java:170)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.<init>(DefaultListableBeanFactory.java:170)
at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:195)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:148)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:122)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:94)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:83)
at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:106)
at org.apache.cxf.BusFactory.createThreadBus(BusFactory.java:243)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:227)
at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:214)
at org.apache.cxf.jaxws.spi.ProviderImpl.createEndpoint(ProviderImpl.java:131)
at org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:154)
at javax.xml.ws.Endpoint.publish(Endpoint.java:240)
at com.zra.test.ProxyPublisher.main(ProxyPublisher.java:11)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.DefaultParameterNameDiscoverer
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 24 more
Here is my dependency, I have changed my dependency to 3.1.3.RELEASE i get an error in my pom.xml
这是我的依赖项,我已将依赖项更改为 3.1.3.RELEASE 我在 pom.xml 中出现错误
<repository>
<id>spring-snapshots</id>
<name>Spring Maven Snapshot Repository</name>
<url>http://s3.amazonaws.com/maven.springframework.org/snapshot</url>
</repository>
</repositories>
<properties>
<spring.version>3.1.3.RELEASE</spring.version>
<spring-batch.version>2.1.9.RELEASE</spring-batch.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
回答by Ugur Artun
This class is available since 4.0. Look at here
这个类从 4.0 开始可用。看这里
Class DefaultParameterNameDiscoverer
类 DefaultParameterNameDiscoverer
You should upgrade spring-coreartifact to 4.0 version.
您应该将spring-coreartifact升级到 4.0 版本。
回答by Jeevan Patil
You have some spring dependencies of version 3.1.3.RELEASE
and some of 4.0.2.RELEASE
. Try using dependencies of same version. I guess mixed versions of spring dependencies is causing the problems.
您有一些 spring 版本的依赖项3.1.3.RELEASE
和一些4.0.2.RELEASE
. 尝试使用相同版本的依赖项。我猜 spring 依赖项的混合版本导致了这些问题。
Read Maven "Bill Of Materials" Dependency
section in spring reference documents.
阅读Maven "Bill Of Materials" Dependency
节春季参考文件。