首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tigase外部组件为单个jar

Tigase外部组件为单个jar
EN

Stack Overflow用户
提问于 2019-04-11 13:17:30
回答 2查看 109关注 0票数 0

我已经用特定的功能实现了tigase组件,现在我试图找出如何将它作为外部组件使用。现在看来,我必须设置包含组件的单独的tigase服务器,然后将主tigase服务器配置为将该单独的服务器作为外部组件进行引用。

我想要做的是将外部tigase组装到一个jar中,以便能够使用一行命令运行它,而无需预先安装tigase。

问题是这有可能吗?

tigase似乎需要运行数据库,管理指南鼓励将共享主服务器的数据库用于外部组件。我不确定tigase是否可以在没有数据库的情况下启动,这使得使用简单的java -jar命令运行相当困难。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 18:32:28

现在看来,我必须设置包含组件的单独的tigase服务器,然后将主tigase服务器配置为将该单独的服务器作为外部组件进行引用。

这是正确的。Tigase服务器在这方面遵循XEP-0114: Jabber组件协议XEP-0225:组件连接。有关如何在Tigase中配置它的细节,请参阅外部组件配置

我想要做的是将外部tigase组装到一个jar中,以便能够使用一行命令运行它,而无需预先安装tigase。问题是这有可能吗?

你可以创建一个"uber jar“-是的,这是可能的。可能的解决方案之一是将组件创建为单独的maven项目,将tigase-server配置为依赖关系,然后利用jar-with-dependencies of Apache组装插件。它将提取所有必需的、配置的依赖项,并将它们放在单个jar文件中。但是,请注意,例如,不会包括数据库驱动程序。

tigase似乎需要运行数据库,管理指南鼓励将共享主服务器的数据库用于外部组件。我不确定tigase是否可以在没有数据库的情况下启动,这使得使用简单的java -jar命令运行相当困难。

确实需要数据库--这可以使您的配置与可能运行外部组件的许多节点保持一致(您只需要在一个节点上更新一次,所有剩余的节点都会自动更新它),但是您不必使用主服务器数据库。详情请见单独数据库的使用。如果只使用外部组件的单个本地实例,则可以创建一个简单的derby数据库,并将配置放在etc/externalComponentItems文件中。

票数 1
EN

Stack Overflow用户

发布于 2019-04-11 18:29:43

是的,Tigase组件框架/API要求Tigase Server核心运行。而且您只使用自定义组件加载Tigase服务器核心。建议在Tigase主XMPP和组件实例之间共享数据库,以实现简单,但不是强制性的。如果真的不需要DB,我认为外部组件实例甚至可以使用虚拟DB连接器运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55633451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档