2011-08-10 54 views
1

我正在嘗試將Nexus服務器從版本1.7.2升級到最新版本1.9.2。我在自己的Tomcat安裝(Tomcat 6.0.18,Linux上的Sun Java 1.6.0_14)上使用了war發行版。如何解決Sonatype Nexus升級失敗(NoClassDefFoundError)?

我所做的是取消部署舊版本的Web應用程序,然後(通過Tomcat的HTML經理)部署nexus.war的新版本。這一切似乎都很好,webapp被部署了,但是當我嘗試訪問它時,我得到一個500內部服務器錯誤。

展望承上啓下日誌,我看到以下消息:

2011-08-10 23:57:42 WARN [http-8080-4 ] - o.s.g.b.r.LoadedCla~   - Error  injecting: org.sonatype.nexus.plugins.mac.api.MacRepositoryPlexusResource 
java.lang.NoClassDefFoundError: org/sonatype/nexus/index/ArtifactInfoFilter 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
    at java.lang.Class.getDeclaredConstructors(Class.java:1836) 
    at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:243) 
    at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:96) 
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:628) 
(....) 

2011-08-10 23:57:42 ERROR [http-8080-4 ] - o.a.c.c.C.[.[.[/nex~   - nexus: Error during the starting of the Restlet Application 
com.google.inject.ProvisionException: Guice provision errors: 

1) Error injecting: org.sonatype.nexus.plugins.mac.api.MacRepositoryPlexusResource 
    at ClassRealm[org.sonatype.nexus.plugins:nexus-archetype-plugin:1.0.1-SNAPSHOT, parent: ClassRealm[plexus.core, parent: null]] 
    while locating org.sonatype.plexus.rest.resource.PlexusResource annotated with @com.google.inject.name.Named(value=org.sonatype.nexus.plugins.mac.api.MacRepositoryPlexusResource) 

1 error 
    at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:977) 
    at com.google.inject.Scopes$1$1.get(Scopes.java:59) 
    at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79) 
    at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:53) 
    (...) 

我已經繞了一下Google搜索,看看這是一個已知的問題,但不能真正找到任何東西......有沒有人在升級Nexus時遇到類似的問題,和/或知道該怎麼辦?

+0

也在Sonatype社區論壇發佈了這個問題:http://getsatisfaction.com/sonatype/topics/upgrade_from_1_7_2_to_1_9_2_war_distro_fails_with_noclassdeffounderror –

回答

1

找到了答案,這(通過Sonatype的社區論壇):我已經安裝了一箇舊關係,Archetype插件(位於sonatype-work/nexus/plugin-repository)。顯然這個功能現在與Nexus本身一起提供。刪除插件修復了問題。