2009-02-13 53 views
1

有一個奇怪的情況。 我爲我的企業應用程序使用Glassfish服務器。在那個應用程序中,我使用JSF,Richfaces,Quartz,Jasper Reports和Commons Email。當我構建和部署應用程序到我的開發。電腦,開發和測試服務器,一切工作正常。但是當我使用相同的glassfish將應用程序部署到生產服務器時,我無法運行Quartz調度程序。它給了我,公共收藏有一些問題。我知道某處存在衝突,但我找不到位置。你可以給我一些指引去看看。順便說一句,我使用的是NetBeans 6.5。Quartz的庫衝突

這裏是日誌:

[#|2009-02-13T02:00:03.055+0000|WARNING|sun-appserver9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=22;_ThreadName=httpSSLWorkerThread-80-4;_RequestID=97d21f45-2489-486c-b8d9-68625776c546;|#{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
javax.faces.FacesException: #{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:383) 
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) 
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) 
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) 
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) 
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) 
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390) 
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288) 
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) 
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) 
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) 
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) 
Caused by: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) 
    ... 43 more 
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) 
    at englearn.elc.controller.SchedulerController.play(SchedulerController.java:43) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:187) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) 
    ... 44 more 
|#] 

[#|2009-02-13T02:00:03.055+0000|WARNING|sun-appserver9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=22;_ThreadName=httpSSLWorkerThread-80-4;_RequestID=97d21f45-2489-486c-b8d9-68625776c546;|executePhase(INVOKE_APPLICATION 5,com.sun.faces.con[email protected]) threw exception 
javax.faces.FacesException: #{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:105) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) 
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) 
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390) 
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288) 
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) 
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) 
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) 
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) 
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) 
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) 
Caused by: javax.faces.FacesException: #{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:383) 
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) 
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) 
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) 
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) 
    ... 37 more 
Caused by: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set; 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) 
    ... 43 more 
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) 
    at englearn.elc.controller.SchedulerController.play(SchedulerController.java:43) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:187) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) 
    ... 44 more 
|#] 

回答

5

一個java.lang.NoSuchMethodException始終表示在運行時類路徑的類文件是不是同一版本的類文件是在編譯時類路徑(如果方法有編譯時失蹤,編譯就失敗了)

具體來說,在這種情況下,問題的方法:java.util.Set org.apache.commons.collections.SetUtils.orderedSet(java.util.Set)

你在你的機生產線有不同的版本的公共的集合比你在開發環境中做得更好。

2

這可能是因爲您使用的commons-collections.jar版本沒有該方法。爲了解決這個問題,你需要上傳這個庫(3.2.1版是最新的版本),並且替換你的項目中的所有舊commons-collections.jar(我建議你在你的項目中進行搜索項目文件夾知道這個圖書館的所有地方,因爲它出乎意料地在很多地方,至少在我的情況下...)

希望這可以幫助所有這個可怕的麻煩的人!我花了整整一天的時間來修復它!祝你好運好友:)

2

最新的石英版本不依賴於公共收藏庫,所以嘗試使用較新的版本。 在我的情況下,從石英1.6.0切換到1.6.6解決了這個問題。