我正在尝试将 Gerrit 与 Github 集成,如下 this手动的。它编译成功,稍后我可以使用命令初始化 Gerrit:
java -jar gerrit-2.9.1.war init
但是在我尝试启动 Gerrit 服务器后,它失败并在日志中显示以下错误:
[2014-11-27 14:06:36,723] ERROR com.google.gerrit.pgm.http.jetty.JettyServer : Unable to instantiate front-end HTTP Filter com.googlesource.gerrit.plugins.github.oauth.OAuthFilter
java.lang.ClassNotFoundException: com.googlesource.gerrit.plugins.github.oauth.OAuthFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at com.google.gerrit.pgm.http.jetty.JettyServer.makeContext(JettyServer.java:425)
at com.google.gerrit.pgm.http.jetty.JettyServer.makeContext(JettyServer.java:378)
at com.google.gerrit.pgm.http.jetty.JettyServer.<init>(JettyServer.java:167)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:86)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:269)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:65)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
at com.google.gerrit.pgm.Daemon.createHttpdInjector(Daemon.java:438)
at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:403)
at com.google.gerrit.pgm.Daemon.start(Daemon.java:286)
at com.google.gerrit.pgm.Daemon.run(Daemon.java:201)
at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)
at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)
at Main.main(Main.java:25)
[2014-11-27 14:06:36,762] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.CreationException: Guice creation errors:
1) Error injecting constructor, java.lang.IllegalArgumentException: Unable to instantiate front-end HTTP Filter com.googlesource.gerrit.plugins.github.oauth.OAuthFilter
at com.google.gerrit.pgm.http.jetty.JettyServer.<init>(JettyServer.java:161)
at com.google.gerrit.pgm.http.jetty.JettyModule.configure(JettyModule.java:29)
while locating com.google.gerrit.pgm.http.jetty.JettyServer
1 error
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:448)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
at com.google.gerrit.pgm.Daemon.createHttpdInjector(Daemon.java:438)
at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:403)
at com.google.gerrit.pgm.Daemon.start(Daemon.java:286)
at com.google.gerrit.pgm.Daemon.run(Daemon.java:201)
at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)
at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)
at Main.main(Main.java:25)
Caused by: java.lang.IllegalArgumentException: Unable to instantiate front-end HTTP Filter com.googlesource.gerrit.plugins.github.oauth.OAuthFilter
at com.google.gerrit.pgm.http.jetty.JettyServer.makeContext(JettyServer.java:434)
at com.google.gerrit.pgm.http.jetty.JettyServer.makeContext(JettyServer.java:378)
at com.google.gerrit.pgm.http.jetty.JettyServer.<init>(JettyServer.java:167)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:86)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:269)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:65)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
... 15 more
Caused by: java.lang.ClassNotFoundException: com.googlesource.gerrit.plugins.github.oauth.OAuthFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at com.google.gerrit.pgm.http.jetty.JettyServer.makeContext(JettyServer.java:425)
... 35 more
我尝试了该插件的 2.10-SNAPSHOT 和 2.9 版本,但它们显示了此错误。如何启动 Gerrit(尝试使用 2.9.1)?
最佳答案
这个错误非常愚蠢。您必须将 github-oauth-2.11.jar 复制到 libs 目录,而不是插件。必须阅读https://gerrit.googlesource.com/plugins/github/仔细。
关于github - 格里特和 GitHub。 com.googlesource.gerrit.plugins.github.oauth.OAuthFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177793/