java web程式放linux上報錯java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName
阿新 • • 發佈:2019-02-03
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,就可以了。