2013-07-15 21 views
0

我是Java新手,一直在通過一些教程來熟悉一些框架和技術,比如JSF,Spring和RichFaces。我使用MyEclipse作爲我的IDE,並在http://www.ibm.com/developerworks/java/library/j-richfaces4/index.html上發現了一篇關於RichFaces + JSF2的相當不錯的文章。這個問題的其餘部分以上面鏈接中顯示的RichFaces + JSF2演示項目爲中心。爲什麼這個richfaces演示項目不能在myeclipse web項目中使用maven支持

現在,當我使用J2EE規範級5.0或6.0在MyEclipse中創建一個新的Web項目並導入演示項目文件時,我可以將演示項目部署到myeclipse tomcat,並且在訪問localhost時它工作正常: 8080/[項目名稱] /index.jsf。但是,如果我創建一個新的Web項目(規範級別)並添加Maven支持(標準或MyEclipse風格),並以相似的方式導入相同的演示項目文件,那麼對於我來說,無法啓動並運行網絡應用程序。我使用與上面相同的本地主機URL(並引用新項目)。下面列出了部署錯誤輸出。

我錯過了什麼?


Jul 15, 2013 1:13:31 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Users\[username]\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Users\[username]\AppData\Local\MyEclipse\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201211011550\tomcat\bin 
Jul 15, 2013 1:13:31 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Jul 15, 2013 1:13:31 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 333 ms 
Jul 15, 2013 1:13:31 PM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Jul 15, 2013 1:13:31 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.13 
Jul 15, 2013 1:13:32 PM com.sun.faces.config.ConfigureListener contextInitialized 
INFO: Initializing Mojarra 2.1.3 (FCS 20110908) for context '/rf4jee6stdmvn' 
Jul 15, 2013 1:13:51 PM com.sun.faces.config.ConfigureListener contextInitialized 
SEVERE: Critical error during deployment: 
java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher; 
    at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:664) 
    at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:71) 
    at com.google.common.base.Splitter.on(Splitter.java:127) 
    at org.richfaces.resource.ResourceLibraryFactoryImpl.<clinit>(ResourceLibraryFactoryImpl.java:43) 
    at org.richfaces.application.DefaultModule.configure(DefaultModule.java:32) 
    at org.richfaces.application.ServicesFactoryImpl.init(ServicesFactoryImpl.java:27) 
    at org.richfaces.application.InitializationListener.createFactory(InitializationListener.java:139) 
    at org.richfaces.application.InitializationListener.onStart(InitializationListener.java:112) 
    at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:157) 
    at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) 
    at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2139) 
    at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2115) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:300) 
    at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:600) 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:369) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) 
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566) 
    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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Jul 15, 2013 1:13:51 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener 
java.lang.RuntimeException: java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher; 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) 
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566) 
    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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher; 
    at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:664) 
    at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:71) 
    at com.google.common.base.Splitter.on(Splitter.java:127) 
    at org.richfaces.resource.ResourceLibraryFactoryImpl.<clinit>(ResourceLibraryFactoryImpl.java:43) 
    at org.richfaces.application.DefaultModule.configure(DefaultModule.java:32) 
    at org.richfaces.application.ServicesFactoryImpl.init(ServicesFactoryImpl.java:27) 
    at org.richfaces.application.InitializationListener.createFactory(InitializationListener.java:139) 
    at org.richfaces.application.InitializationListener.onStart(InitializationListener.java:112) 
    at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:157) 
    at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) 
    at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2139) 
    at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2115) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:300) 
    at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:600) 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:369) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) 
    ... 24 more 
Jul 15, 2013 1:13:51 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
Jul 15, 2013 1:13:51 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/rf4jee6stdmvn] startup failed due to previous errors 
Jul 15, 2013 1:13:51 PM com.sun.faces.lifecycle.ELResolverInitPhaseListener populateFacesELResolverForJsp 
INFO: JSF1027: [null] The ELResolvers for JSF were not registered with the JSP container. 
Jul 15, 2013 1:13:51 PM com.sun.faces.config.ConfigureListener contextDestroyed 
SEVERE: Unexpected exception when attempting to tear down the Mojarra runtime 
java.lang.NullPointerException 
    at org.richfaces.application.CacheProvider.release(CacheProvider.java:96) 
    at org.richfaces.application.ServicesFactoryImpl.release(ServicesFactoryImpl.java:18) 
    at org.richfaces.application.ServiceTracker.release(ServiceTracker.java:132) 
    at org.richfaces.application.InitializationListener.onStop(InitializationListener.java:147) 
    at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:159) 
    at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) 
    at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2139) 
    at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2115) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:300) 
    at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:332) 
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3866) 
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4500) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) 
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566) 
    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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Jul 15, 2013 1:13:52 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Jul 15, 2013 1:13:52 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Jul 15, 2013 1:13:52 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/15 config=null 
Jul 15, 2013 1:13:52 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 20428 ms 

UPDATE

由於下面的答案,以及this one,我想通了,發生了什麼事情。

maven支持的myeclipse web項目的maven依賴項之一導致了問題。所以我爲該特定的jar創建了一個排除。

<dependency> 
    <groupId>org.jboss.weld</groupId> 
    <artifactId>weld-osgi-bundle</artifactId> 
    <version>1.0.1-SP3</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>google-collections</artifactId> 
      <groupId>com.google.collections</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 

這部作品的原因是因爲RichFaces的示範項目已經包括番石榴,其中根據評論下面this answer,實際上是谷歌的集合的一個新版本。

此外,有時在對項目依賴性進行更改後,Web應用程序的簡單刷新/更新爲而不是足以推出更改。我必須停止服務器,刪除Web應用程序,重新啓動服務器,然後重新部署應用程序。也許這是Java或MyEclipse的標準做法或我正在做的具體更改,但我並不期望必須這樣做。

真是痛苦!但它一直是一種學習體驗。

回答

2

這對一些谷歌的庫的依賴性衝突,可能番石榴谷歌收集。要修復它,你需要看看你的依賴關係樹。在使用myeclipse時,打開你的pom.xml文件,並在下面的選項卡中選擇依賴關係層次結構視圖。然後搜索我告訴你的依賴關係。可能會有不同的問題:

  • 您不包括需要它的工件的依賴關係。
  • Maven正在解決與新的Google依賴關係的衝突,但此方法位於舊版本中,而您正在使用的第三方庫使用該方法。在這種情況下,您應該嘗試更新第三方庫或降級您自己使用的版本。
  • 對於某些工件,您包括API依賴和其他版本的實現版本。在這種情況下,執行期望找到這個方法,但它在實現中不可用。

看一看this related question

+0

你的回答幫助我指出了正確的方向。非常感謝你。你的鏈接沒有工作,但我想我發現你指的問題[這裏](http://stackoverflow.com/questions/8257545/nosuchmethoderror-exception-when-using-com-google-common-base-分路器)。看到我的問題的更新,以獲得更多關於我發現的信息。 –

+0

很高興看到它的幫助;-) –

相關問題