当前位置: 首页 > 工具软件 > Spark IM > 使用案例 >

Spark IM二次开发环境搭建及问题修复

戴品
2023-12-01

1. 运行报错如下

五月 14, 2020 3:02:53 下午 org.jivesoftware.spark.util.log.Log error
严重: Unable to load plugin org.jivesoftware.fastpath.FastpathPlugin.
java.lang.NoClassDefFoundError: org/jivesoftware/smack/Connection
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.newInstance(Class.java:412)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugin(PluginManager.java:377)
	at org.jivesoftware.spark.PluginManager.loadPlugin(PluginManager.java:743)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugins(PluginManager.java:731)
	at org.jivesoftware.spark.PluginManager.loadPlugins(PluginManager.java:219)
	at org.jivesoftware.Spark.startup(Spark.java:184)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.jivesoftware.launcher.Startup.start(Startup.java:88)
	at org.jivesoftware.launcher.Startup.main(Startup.java:38)
Caused by: java.lang.ClassNotFoundException: org.jivesoftware.smack.Connection
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 15 more

五月 14, 2020 3:02:53 下午 org.jivesoftware.spark.util.log.Log error
严重: Unable to load plugin org.jivesoftware.sparkplugin.JinglePlugin.
java.lang.NoClassDefFoundError: org/jivesoftware/spark/phone/Phone
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugin(PluginManager.java:377)
	at org.jivesoftware.spark.PluginManager.loadPlugin(PluginManager.java:743)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugins(PluginManager.java:731)
	at org.jivesoftware.spark.PluginManager.loadPlugins(PluginManager.java:219)
	at org.jivesoftware.Spark.startup(Spark.java:184)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.jivesoftware.launcher.Startup.start(Startup.java:88)
	at org.jivesoftware.launcher.Startup.main(Startup.java:38)
Caused by: java.lang.ClassNotFoundException: org.jivesoftware.spark.phone.Phone
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 22 more

五月 14, 2020 3:02:53 下午 org.jivesoftware.spark.util.log.Log error
严重: Unable to load plugin org.jivesoftware.sparkplugin.SoftPhonePlugin.
java.lang.NoClassDefFoundError: org/jivesoftware/spark/phone/Phone
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.newInstance(Class.java:412)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugin(PluginManager.java:377)
	at org.jivesoftware.spark.PluginManager.loadPlugin(PluginManager.java:743)
	at org.jivesoftware.spark.PluginManager.loadPublicPlugins(PluginManager.java:731)
	at org.jivesoftware.spark.PluginManager.loadPlugins(PluginManager.java:219)
	at org.jivesoftware.Spark.startup(Spark.java:184)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.jivesoftware.launcher.Startup.start(Startup.java:88)
	at org.jivesoftware.launcher.Startup.main(Startup.java:38)
Caused by: java.lang.ClassNotFoundException: org.jivesoftware.spark.phone.Phone
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 26 more

解决:

根据错误提示检查插件的配置路径发现果然是路径配置的问题:路径少加了个s:

问题出在:PluginManager.java

错误代码:

List<? extends Node> plugins = pluginXML.selectNodes("/plugin");

正确代码:

List<? extends Node> plugins = pluginXML.selectNodes("/plugins");

 

 类似资料: