不同.jar文件中的ReflectionUtils.makeAccessible()导致openJDK

时间:2016-10-06 06:17:21

标签: java spring maven openjdk

我有以下问题:我们将应用程序从带有tomcat6的java6升级到带有tomcat8的java8。使用Oracle Java 8在本地计算机上启动应用程序时遇到了问题。但是在我们的服务器上我们得到了

java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccessible(Ljava/lang/reflect/Constructor;)V
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:125)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:251)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4720)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:917)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1701)
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我们调查了这个问题,ReflectionUtils.makeAccessible()方法由spring-core-2.0.8.jar和org.springframework.core-3.0.4.RELEASE.jar提供

我们的服务器正在运行OpenJDK 8而不是Oracle Java 8,似乎应用程序试图使用spring-core-2.0.8.jar中的makeAccessible()而不是org.springframework.core-3.0.4。 RELEASE.jar。当我们删除lib文件夹中的spring-core-2.0.8.jar时,应用程序启动没有问题。不幸的是,spring-core-2.0.8.jar是来自maven hibernate依赖的maven传递依赖,因此我们需要这个jar。

您有什么想法如何解决这个问题?

提前致谢,最好的问候

0 个答案:

没有答案