当我将我的EAR文件发布到Websphere时,我发现这个错误有四个不同的bean:
[5/9/14 8:54:44:485 CDT] 00000018 DefaultListab I org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@63706370: defining beans [updateMPETask,processingNotifyerTask,calendarTask1,calendarTask2,calendarTask3,calendarTask4,calendarTask5,calendarTask6,calendarTask7,datasetNotifyerTask,updateMPEJobDetail,processingNotifyerJobDetail,calendarJob1Detail,calendarJob2Detail,calendarJob3Detail,calendarJob4Detail,calendarJob5Detail,calendarJob6Detail,calendarJob7Detail,datasetNotifyerJobDetail,updateMPENotifyerCronTrigger,processingNotifyerCronTrigger,calendar1CronTrigger,calendar2CronTrigger,calendar3CronTrigger,calendar4CronTrigger,calendar5CronTrigger,calendar6CronTrigger,calendar7CronTrigger,datasetNotifyerCronTrigger,quartzScheduleFactory]; root of factory hierarchy
[5/9/14 8:54:44:485 CDT] 00000018 ContextLoader E org.springframework.web.context.ContextLoader initWebApplicationContext Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'updateABCJobDetail' defined in ServletContext resource [/WEB-INF/classes/resources/dvl/ictt-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org/apache/commons/collections/SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
Caused by: java.lang.NoSuchMethodError: org/apache/commons/collections/SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
at org.quartz.JobDetail.<init>(JobDetail.java:85)
在搜索解决方案时,我发现很多论坛都说它可能是由于commons-collections.jar的重复或过时版本造成的。
因此,我从Classpath中删除了文件commons-collections.jar
并粘贴了commons-collections-3.2.1.jar
,我从http://mvnrepository.com/artifact/commons-collections/commons-collections/3.2.1下载了该文件。任何线索都将被广泛接受。
我的classpath包含以下文件:
答案 0 :(得分:0)
发生此错误是因为您的应用程序最终使用WebSphere内部的WebSphere Commons Collections类(WebSphere出于其自身目的使用Commons Collections),而不是您应用程序中捆绑的Commons Collections。
根据WebSphere的文档,只要您的应用程序使用WebSphere也在内部使用的第三方库(Commons Collections就是其中之一),您应该:
WEB-INF/lib
)PARENT_LAST
这将导致您的应用程序使用捆绑的Commons Collections而不是WebSphere。