2011-08-10 31 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本身一起提供。删除插件修复了问题。