皆大好きjenkinsのお話です。
本日新サーバに以前書いた以下の記事を参考に、新規にjenkinsをインストールしました。
しかしjenkins起動時にjenkins jabber pluginがエラーを吐いて動かなかったので、動くように調整する事にしました。
環境
- CentOS5.5
- Oracle JDK1.6
- jenkinsは最新版
エラー内容
警告: Failed to scout hudson.plugins.jabber.im.transport.JabberPublisher java.lang.UnsupportedClassVersionError: org/jivesoftware/smack/Roster$SubscriptionMode : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1138) at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:756) at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1309) at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1365) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1325) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1078) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at hudson.plugins.jabber.im.transport.JabberPublisherDescriptor.<clinit>(JabberPublisherDescriptor.java:75) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:680) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:337) at hudson.ExtensionList.load(ExtensionList.java:300) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:253) at hudson.ExtensionList.iterator(ExtensionList.java:143) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:336) at hudson.ExtensionList.load(ExtensionList.java:300) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:253) at hudson.ExtensionList.get(ExtensionList.java:158) at hudson.PluginManager$PluginUpdateMonitor.getInstance(PluginManager.java:1203) at hudson.maven.PluginImpl.init(PluginImpl.java:58) 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:105) at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:885) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 2014/10/27 19:01:08 hudson.ExtensionFinder$GuiceFinder$SezpozModule configure 警告: Failed to load hudson.plugins.jabber.im.transport.JabberPublisher java.lang.UnsupportedClassVersionError: org/jivesoftware/smack/proxy/ProxyInfo$ProxyType : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1138) at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:756) at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1309) at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1365) at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1325) at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1078) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.privateGetPublicMethods(Class.java:2547) at java.lang.Class.getMethods(Class.java:1410) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:484) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.configure(ExtensionFinder.java:524) at com.google.inject.AbstractModule.configure(AbstractModule.java:62) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:230) at com.google.inject.spi.Elements.getElements(Elements.java:103) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) at com.google.inject.Guice.createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at hudson.ExtensionFinder$GuiceFinder.<init>(ExtensionFinder.java:282) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at net.java.sezpoz.IndexItem.instance(IndexItem.java:181) at hudson.ExtensionFinder$Sezpoz._find(ExtensionFinder.java:642) at hudson.ExtensionFinder$Sezpoz.find(ExtensionFinder.java:617) at hudson.ExtensionFinder._find(ExtensionFinder.java:151) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:343) at hudson.ExtensionList.load(ExtensionList.java:300) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:253) at hudson.ExtensionList.iterator(ExtensionList.java:143) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:336) at hudson.ExtensionList.load(ExtensionList.java:300) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:253) at hudson.ExtensionList.get(ExtensionList.java:158) at hudson.PluginManager$PluginUpdateMonitor.getInstance(PluginManager.java:1203) at hudson.maven.PluginImpl.init(PluginImpl.java:58) 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 hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:105) at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask(Jenkins.java:885) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
よく見るエラーですね。
JDK1.7以降じゃなきゃ動かねーよ!っていうエラーです。
jenkins jabber plugin
Java 7 Needed
Jabber Plugin - Jenkins - Jenkins Wiki
Note that since version 1.26 Java / is needed as a requirement to run the plugin. If you still require Java 6 please stay with 1.25 or lower
上記ページに重要な事が書いてあります。
「v1.26からJDK1.7が必要になったよ。お使いのJDKがまだv1.6なら、jabber plugin v1.25より下のバージョンつかってね」とのことです。
対応
利用可能プラグイン一覧に表示されるjabber pluginは既にv1.2.7になっており、使えません。
なので、手動で入れます。
- Jenkinsの管理を開く。
- プラグインの管理を開く。
- 高度な設定を開く。
- http://updates.jenkins-ci.org/download/plugins/jabber/1.25/jabber.hpi をDLする。
- プラグインのアップロードで.hpiをアップロードしてインストール
これでv1.25がインストールでき、晴れてJDK1.6上でjabber pluginが使えるようになります。
雑感
JDKのバージョンアップってそんな簡単にできないので、この問題は結構困りますね。
手動でインストール後にpluginの管理を開くと、アップデート有りと判断され、うっかりアップデートするとまた使えなくなってしまうという面倒が起きる可能性がありますね。
この辺の融通が効くと嬉しいですね。