Spark2.8.0源代码导入,XMPP即时通讯Openfire和Spark源代码导入

来源:互联网 发布:naza飞控调参软件下载 编辑:程序博客网 时间:2024/06/14 05:22
 

Spark2.8.0源代码导入,XMPP即时通讯Openfire和Spark源代码导入

标签: Spark2.8.0OpenfireSpark源代码导入XMPP协议
 3576人阅读 评论(10) 收藏 举报
 分类:

目录(?)[+]

关于Spark

这里的Spark是指XMPP协议的一个客户端,并非目前非常流行的大数据计算框架Spark,误看名称进入博客的同学不好意思了,可以绕道了。

因为平时实用XMPP协议的服务器大多实用的openfire,最近公司有需求,需要做一个桌面的入口,并实现部分即时通讯功能,于是便想研究下Spark的项目结构和部分代码。

导入后的结构如下:



--------------------------------------------------------------------------------------------------------------------
Github源码地址:
https://github.com/igniterealtime/Spark
--------------------------------------------------------------------------------------------------------------------


导入过程

    SVN下载地址:http://svn.igniterealtime.org/svn/repos/spark/trunk


    1、创建Spark的JavaProject项目后导入源码,设置Properties

        a) Java Build Path -> Source: spark/src/java

            Java Build Path -> Libraries:

            spark/build/lib/* , spark/build/lib/dist/*, spark/build/lib/dist/ext/*, spark/build/lib/merge/*,

            spark/plugins/jingle/build/lib/dist/*,  spark/plugins/spelling/build/lib/*, spark/src/commerial

        b) Run/Debug Settings -> Main: Main class: org.jivesoftware.launcher.Startup , 勾选 Stop in main

            Run/Debug Settings -> Classpath: User Entries 下增加目录: spark/src/resources

        c) Ant -> Add Buildfiles

            加入 spark/build/build.xml , 然后展开加入的Spark,然后双击 release (release 是 default 的,所以直接双击 Spark 也行),稍后,控制台显示 BUILD SUCCESSFUL 表示成功。

        d) Run 或 Debug 该 Spark 项目,顺利看到 Spark 的登录界面,完成。


    2、新建用户,测试下吧,服务器ip填本机就行了(127.0.0.1)







Spark是通过Ant来编译的:


报错及异常解决:

Spark no civil in java.library.path解决方案
这是摄像头装置插件报异常
增加spark启动参数,就是Eclipse右键Run Configurations在Arguments标签下
在 VM环境参数中 添加
-Djava.library.path="${workspace_loc:Spark}/target/build/lib/windows,如果是64位,则是windows64

Could not open/create prefs root node Software\JavaSoft\Prefs atroot 0x80000002解决方案
这是Windows注册表权限问题,因为为调试应用,所有没注册表权限
解决方案:
打开REGEDIT.EXE。
然后找到HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft。
右键单击权限,然后更改权限为完全许可即可。
如果路径下没有JavaSoft项,则在HKEY_CURRENT_USER下。

org.jivesoftware.sparkimpl.plugin.language.LanguagePlugin.initialize解决方案
这是源代码问题,这里获取语言栏插件时,默认查的是spark.jar文件,但是调试是找不到这个文件的
解决方案:
找到LanguagePlugin类,在initialize()方法下修改如下:
[html] view plain copy
  1. try {  
  2.             String url = URLDecoder.decode(sparkJar.getPath(), Charset.defaultCharset().toString());  
  3.   
  4.             //i18n bug fixed it  
  5.             if (!url.endsWith("spark.jar")) {  
  6.                 //url = "E:/EclipseFile/Workspaces/Workspaces/Spark/target/build/lib/spark.jar";  
  7.                 File file = new File(url);  
  8.                 File[] listFiles = file.listFiles();  
  9.                 for (File child : listFiles) {  
  10.                     String propertiesName = child.getName();  
  11.                     if (propertiesName.endsWith(".properties")) {  
  12.                         int lastIndex = propertiesName.lastIndexOf("i18n_");  
  13.                         int period = propertiesName.lastIndexOf(".");  
  14.                         if (lastIndex == -1 && propertiesName.contains("spark_i18n")) {  
  15.                             addLanguage("en");  
  16.                         }  
  17.                         else {  
  18.                             String language = propertiesName.substring(lastIndex + 5, period);  
  19.                             addLanguage(language);  
  20.                         }  
  21.                     }  
  22.                 }  
  23.                   
  24.             }  
  25.             else {  
  26.                 ZipFile zipFile = new JarFile(new File(url));  
  27.                 for (Enumeration<? extends ZipEntry> e = zipFile.entries(); e.hasMoreElements();) {  
  28.                     JarEntry entry = (JarEntry)e.nextElement();  
  29.                     String propertiesName = entry.getName();  
  30.                     // Ignore any manifest.mf entries.  
  31.                     if (propertiesName.endsWith(".properties")) {  
  32.                         int lastIndex = propertiesName.lastIndexOf("i18n_");  
  33.                         int period = propertiesName.lastIndexOf(".");  
  34.                         if (lastIndex == -1 && propertiesName.contains("spark_i18n")) {  
  35.                             addLanguage("en");  
  36.                         }  
  37.                         else {  
  38.                             String language = propertiesName.substring(lastIndex + 5, period);  
  39.                             addLanguage(language);  
  40.                         }  
  41.                     }  
  42.                 }  
  43.                 zipFile.close();  
  44.             }  
  45.         }  
  46.         catch (Throwable e) {  
  47.             Log.error("Error unzipping plugin", e);  
  48.         }  

--------------------------------------------------------------------------------------------------------------------
源码如果报错,导入缺少的jar包即可,其他报错的插件包可以删除或屏蔽:
http://download.csdn.net/detail/jaikydota163/9645621
--------------------------------------------------------------------------------------------------------------------


声明

欢迎转载,但请保留文章原始出处
作者:Jaiky_杰哥 
出处:http://blog.csdn.net/jaikydota163/article/details/52734697

原创粉丝点击