java web程序放linux上报错java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName

java web程序放linux上报错

java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class;
	at org.springframework.web.context.ContextLoader.determineContextClass(ContextLoader.java:278)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:233)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4753)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5215)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

在windows机器上运行时,并不会报错,部署到linux服务器却报错

解决方案:

查找lib包,看是否有重复,一般这样的情况发生都是导入了同样的包导致的,查看包重复的时候要仔细,因为有的包满意版本,可能还需要解压来看版本等信息,删除重复的包,就可以了,

亲测,我的项目中有2个同样的spring.jar 一个有版本,一个满意版本的,删除spring.jar,就可以了。

你可能感兴趣的:(java,web,linux部署问题)