openmeetings6.10安装配置 踩坑记录

2021SC@SDUSC

本文采用的是下载源码并利用idea安装依赖、进行配置的方法

openmeetings6.10源码下载地址: Github apache/openmeetings

官方源码运行教程:Apache OpenMeetings Project – Build instructions


配置需要:

  • Oracle JDK11(及以上,我用的是JDK13)
  • Apache Maven 3.5.0(及以上,我用的是3.8.2)

配置步骤:
  1. 下载源码
  2. 安装依赖
  3. 启动服务器
  4. 按照网页的安装指示进行安装

踩坑一:输入安装依赖命令后会报错 Too many files with unapproved license

将整个openmeetings文件夹导入idea后,idea会自动构建,构建完成后,我按照官网的指示执行了

mvn clean install -P allModules

命令,但是当安装到openmeetings-web文件夹下的依赖时,它报错Too many files with unapproved license,上网查了解决方案,需要在后面添加
-Drat.numUnapprovedLicenses=100

即修改指令为:

mvn clean install -P allModules -Drat.numUnapprovedLicenses=100

即可解决

解析
这个错误说的是使用未经批准的许可证的文件太多,然后添加的-Drat.numUnapprovedLicenses=100指的是允许使用未经批准的许可证的文件的数量不超过100
(参考链接:解决org.apache.rat:apache-rat-plugin:0.8:check (default) on project hbase: Too many unapproved license
并且这段代码不能在power shell中写,如果要在power shell中写似乎得加上引号,直接使用最好用windows自带的命令行,或者在idea的Terminal里面写。


踩坑二:openmeeting-web里的addFileTest类报错:getWidth()和定义的width不相同

报错信息:

[ERROR] Failures:
[ERROR] TestFileService.addFileTest:68 Width should be determined ==> expected: <150> but was: <null>

去翻了源代码,它是这样写的:

assertEquals(width, cr.getObj().getWidth(), "Width should be determined");

assertEquals的作用:1. 如果两者一致, 程序继续往下运行. 2. 如果两者不一致, 中断测试方法, 抛出异常信息

这个addFileTest.java文件应该跟上传图片有关,我也不知道这个问题该怎么解决,我很简单粗暴地把有assertEquals的两行代码注释掉,然后安装就可以继续往下进行了。。。


踩坑三:Tomcat报错启动过滤器异常

Tomcat Server报错:

27-Sep-2021 21:47:06.751 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到
27-Sep-2021 21:47:06.751 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[]启动失败
27-Sep-2021 21:47:06.912 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks web应用程序[ROOT]创建了一个ThreadLocal,其键类型为[java.lang.ThreadLocal](值为[java.lang.ThreadLocal@37a2d6da]),值类型为[io.netty.util.internal.InternalThreadLocalMap](值为[io.netty.util.internal.InternalThreadLocalMap@51a7c735),但在停止web应用程序时未能将其删除。线程将随着时间的推移而更新,以尝试避免可能的内存泄漏
27-Sep-2021 21:47:06.916 信息 [nioEventLoopGroup-2-1] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[io.netty.util.internal.TypeParameterMatcher]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
	java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[io.netty.util.internal.TypeParameterMatcher]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
		at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1385)
		at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1373)

在网上搜了很多这些报错信息,但都没有结果,然后我又看了一下Tomcat Localhost Log的报错信息,这里很明确地给了具体的错误类型

27-Sep-2021 21:47:06.750 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常
	javax.servlet.ServletException: java.lang.IllegalArgumentException: Invalid configuration type: '${wicket.configuration}'.  Must be "development" or "deployment".
		at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:467)

${wicket.configuration}出现在openmeetings-web\src\test\jetty\web.xml和openmeetings-web\src\main\webapp\WEB-INF\web.xml两个文件的下列代码中

		<init-param>
			<param-name>configuration</param-name>
			<param-value>${wicket.configuration}</param-value>
		</init-param>

我的做法也是简单粗暴,直接改成了下面:

		<init-param>
			<param-name>configuration</param-name>
			<param-value>development</param-value>
		</init-param>

这样程序就可以正常启动了

踩坑四:数据库配置错误

我用的是MySQL数据库,版本是8.0.19。一开始用8.0.16的jar包进行jdbc连接,它会提示无法连接。后来更换了5.1.47的jar包,就可以通过数据库检查了。不同电脑可以正常连接的jar包版本可能会不一样,实在不行就多尝试几个。。。
附上几个链接:
Openmeetings官方MySQL配置教程
MySQL Connector jar包下载地址


写在最后

整个openmeetings是安装完成了,可以正常注册和登录,但是现在登录以后页面会卡住进不去,还不知道是什么原因。本人也是第一次配置openmeetings,遇到了很多问题感觉自己也解决得不是很到位,如果大家有更好的意见欢迎留言讨论,大家一起学习进步~!

小组分工:接下来我将负责分析openmeetings下的openmeetings-install和openmeetings-server两个文件夹的代码

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值