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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 08:22:48  来源:igfitidea点击:

Maven project Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer

javaspringmaven

提问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春季参考文件