Tigase 交流群 :310790965
一些小伙伴们经常问 Tigase8 check 下来的源代码怎么跑起来, 因为我不能及时一 一回答, 所以还是写个博文来演示一下吧, 一般针对新手而言, 老手的话, 就跳过吧!
一, 一般第一步是进入 tigase 的官网, 选择你想要下载的模块 :
https://tigase.tech/favorite_projects/search https://tigase.tech/favorite_projects/search
复制仓库链接 https://git.tigase.tech/tigase-server.git 到 IDEA , 准备 Git 拉取 下来
点击 clone , 等待会就下载成功:
一般下载代码后, 第一步就是进行项目配置设置 Tigase8 是依赖是 JDK8 及以上, 看到右边第五步那, 我们只要留下 src/main/java 这源码项就可以, 其它的可以点 X 移除, 不需要的暂时不让它参与编译
现在展开代码看下, 发现有些类可以由于没有导入 相应的包而出现报错, 这时候可能有些同学开始慌了, 别担心, 如下图只是没有成功导入 tigase-utils.jar 才会出现找不到类的错误, 那我们就去看看原因, 问题就是在 maven , 那么我们不防先执行下 maven install
在执行 maven 后如果没能成功下载包时, 则不防在 pom.xml 里为它加入 tigase 私有仓库如下: 现在再点击 install 进行下载, 如果还是下载不下来, 再试试去进入你本地的 maven 库中, 删除要下载的对应的版本文件目录
- <repositories>
- <repository>
- <id>tigase</id>
- <name>Tigase repository</name>
- <url>http://maven-repo.tigase.org/repository/release</url>
- </repository>
- <repository>
- <id>tigase-snapshot</id>
- <name>Tigase repository</name>
- <url>http://maven-repo.tigase.org/repository/snapshot</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
点击 install 后, 顺利地下载所有依赖的包下来了, 如图所示, 已经没有再报错了, OK, 进展很顺利!
二 , 不防先试着去运行下源代码吧: 快速去找到 XMPPServer 主入口类, 运行, 啊怎么会跑到 Groovy 的代码, 别慌, 我这里是故意演示下这样的错误, 很多同学之前问到. 不用想问题一定在配置里了, 我们应该移除 Groovy 模块, 不让他参与编译.
点开配置项, 移除不需要的模块, 如图 X 所示:
再次点击运行, wo ? 配置文件我都没动怎么就运行成功了, 别慌, 这可是使用默认的配置项, 都没有读取到数据库表信息, 所以才会成功跑起来了
从提示里可以看出, 它默认加载的配置文件是 : etc/init.properties, 如果你不想在 JVM 启动配置项里加入 对应配置来改变这个默认参数项, 最简单的就是拷贝一个配置文件, 改个名字放到 etc 目录下去呗, 多省事. 如我选择 MySQL 数据库, 那么我就拷贝一个 init-MySQL.properties, 改名为 init.properties
看到新增加的 init.properties 文件, 及里面的配置
再次运行 XMPPServer 后, 会发现熟悉的错误出现了, 就是找不到 MySQL 驱动, 这就对了, 说明还得加入 MySQL-connector-java.jar , 那就改下 pom.xml 吧 加入 如下:
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <version>5.1.40</version>
- <!--<scope>test</scope>-->
- </dependency>
有些眼快的同学可能会有疑问? 明明加入 init.properties, 运行过后怎么变成 init.properties.old 了, 这是简单说明下, 其它从 8 开始, Tigase 官方推荐的配置文件格式改了, 他自动帮你把 init.properties 里的配置转换到 config.tdsl 文件里了, 所以别慌, 要是老用户, 你也还可以选择 properties 配置, 让他自动帮你转, 不然去官方那看下他 8 的配置文件指导也是极其简单滴!
如果 Tigase 的数据库导入了数据成功的话, 这里跑起来应该是成功, 可能结束了, 但也有可以数据导入的问题, 出现一些奇怪的问题, 演示下:
上文的报错提示: 系统要求的版本为 0.0.0, 而我们的是 8.0.0, 看到这错误, 这不是很矛盾嘛, 但别慌, 一定是哪里配置少了, 或者少操作了哪一步 !
分析开始 : 由于我是手动导入数据脚本的, 所以我坚信我的数据库现在是完整的, 一定没问题. 这里插入下怎么导入呢: 如下图里的红圈, 你点开里面一个个文件都从小版本一直执行完到 8.0.0, 相信你应该会 SQL 就不多说了, 后面我会附上一份导出的脚本 文件.
提醒下有些同学可能会按着脚本从头到尾导入, 但为什么会遇到出错的导不进去呢, 其实有个脚本里面是有个 BUG 的, 如 MySQL-server-8.0.0-sp.sql 中
基于我的经验, 数据库导入没有问题了, 那为什么还报版本与期望的不一致的错误呢, 这个时候来个大招, 直接看下报错的源代码吧:
原来这里 Tigase 读取打包的 jar 上的包版本号, 但是这里打包没有加上版本号嘛, 即是运行的 tigase-server.jar 所以就读不到包上的版本号嘛, 默认 0.0.0, 我这里就不管了, 直接在下面设置下为 8.0.0, 与数据库配置的版本号一致就行了, 跳过这个版本检查
其实这里还可以选择一种做法, 也就是运行 tigase.db.util.SchemaManager "upgrade-schema" --config-file=etc/config.tdsl 这样系统去执行脚本 , 由于我选择的是手动导入脚本到数据库, 所以我不跑这步了, 你们可以试试.
但无论怎么样, 现在他默认读取运行 jar 包上的版本号和数据库上的版本进行匹配, 出现问题直接定位到这里纠正就行!
三, 再次执行 XMPPServer 运行 main , 发现版本检查的问题没有出现了, 但可能又出现的另一个问题, 但别慌, 这个看提示就很清晰了, SessionManager 组件中 max-queue-size 配置小了, 它让你配置大些, 为什么有人可以有人不行, 现在这个配置项是动态的, 根据你 CPU 核数来要求配置最小值, 简单, 就配置下嘛:
修改 config.tdsl 文件, 如下图:
再次运行 , 一切顺利跑起来拉:
这个时候, 开始使用 spark 去验证下, 服务是否可用了对吧, 握草, 这平时群里问题的最多就这问题了, 怎么启动服务就是访问不到呢:
其实呀, 问题就在你的 default-virtual-host 配置项上, 这个时候不防先看下 etc\config-dump.properties 如果这个文件中系统使用默认的域名为你的主机名, 而你这里的配置又不是主机名, 一般就会出现这样的问题了
那就改为主机名吧, 这改为了 llooper,
这个时候, 应该 是没什么问题了吧, 再来验证下 , 启动系统, 验证一下注册用户 test:
登录用户 :
启动服务, 登录都成功了, 大功告成 ! 其实这个没什么难度的, 就是出现什么问题, 就解决它, 要有耐心!
对了, 本来想附上一份, tigase-server.sql 这里上传不了附件, 那我就上传到群里的文件里去吧, 有需要的同学在群文件里找, tigasedb_8.sql
闲的时候, 写写文档, 一起进步吧. 有什么问题在群里问, 但是有时候可能没时间回复, 见谅!
附上一些 tigase doc 地址 :
https://docs.tigase.net/
仓库地址
- https://maven-repo.tigase.org/repository/release/
- http://maven-repo.tigase.org/repository/snapshot
来源: https://www.cnblogs.com/eyecool/p/10307879.html