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.RELEASEand 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" Dependencysection in spring reference documents.
阅读Maven "Bill Of Materials" Dependency节春季参考文件。

