- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在我的服务器上运行基于 openfire 的聊天系统,但是确实遇到了很多与 openfire java 环境相关的崩溃,我已经将 java VM 内存增加到 512MB,但当服务器负载超过时它仍然崩溃,
我没有很多用户,一次只有 20,30 个,拥有非常强大的 8 核 cpu,32 GB 内存
我正在运行 openfire 3.71。我必须重新启动整个服务器,因为重新启动 openfire 根本无法解决问题。
我在java中遇到的错误是
java.lang.ExceptionInInitializerError
at org.jivesoftware.admin.LoginLimitManager.getInstance(LoginLimitManager.java:48)
at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:143)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:334)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1007)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:747)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at org.jivesoftware.util.TaskEngine.scheduleAtFixedRate(TaskEngine.java:228)
at org.jivesoftware.admin.LoginLimitManager.(LoginLimitManager.java:83)
at org.jivesoftware.admin.LoginLimitManager.(LoginLimitManager.java:33)
at org.jivesoftware.admin.LoginLimitManager$LoginLimitManagerContainer.(LoginLimitManager.java:39)
... 36 more
最佳答案
这个错误似乎与内存不足没有直接关系——通常Java中的内存错误是OutOfMemoryError
错误或指永久代空间有限等。
NullPointerException
另一方面,异常几乎肯定是执行代码中的编程错误。由于在您的情况下,这似乎是在负载下发生的,因此我可以在黑暗中拍摄几张照片:
某些有限资源(例如线程池或事件队列)正在耗尽,并且使用它的代码不会检查该情况。
存在竞争条件,其中代码的某些部分会遇到通常由负载较轻的另一个线程初始化的未初始化结构。
到达某个超时时间,返回 null
,然后未正确处理。
请注意,由于垃圾收集器运行频率或多或少的影响,虚拟机可用的内存量可能影响各种操作的时间。您可以使用分析器,例如 VisualVM ,判断您的应用程序是否内存不足。
关于java - Openfire 因 Java 错误而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508444/
我在玩 strophe 和 Openfire 3.7.1(带有用户服务和监控插件)。 我读过 http://xmpp.org/extensions/xep-0136.html (7.2 检索集合) 我
我在html表单上输入jid和pwd,并使用Strope连接到openfire,但是当我按下登录按钮时,xmpp服务器响应是错误302。我在 openfire 上启用了该选项,然后重新启动它。 var
我是 smack API 的新手。我正在尝试开发一个聊天应用程序,我试图在其中设置和获取状态。 当我更改用户的存在时,它工作得很好,并且反射(reflect)在 Openfire 服务器中。 但是当我
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4 个月前关闭。 Improve t
openfire 4.0.2 https://github.com/igniterealtime/REST-API-Client 我正在使用 REST API 客户端将用户添加到房间。查看调试信息,似
是否可以使用 Strope.js 使用匿名用户创建新用户(带内注册),如示例所示:http://groups.google.com/group/strophe/browse_thread/thread
我正在使用以下软件进行 Android 聊天应用 XMPP 服务器:Openfire 3.9.3 XMPP 客户端:Asmack-android-8-4.0.4.jar 当我手动更改登录用户的存在时,
我正在使用 http-bind 和 openfire 来启用 BOSH 并使用 strophe 访问该服务,问题是我收到以下错误 Chrome 控制台报错 XMLHttpRequest cannot
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 7年前关
我使用openfire 3.9.3服务器和Android和IOS作为客户端。我想在收件人用户离线时通过推送通知向两个客户端发送消息。当发送推送时,发送者应该收到消息收据。 为此,我尝试过: 制作拦截器
据我了解,邮件的默认大小为 1MB。 有没有办法重新配置限制。 对此问题的任何帮助将不胜感激。 谢谢 最佳答案 您需要在Openfire中设置“xmpp.parser.buffer.size”属性(以
我在客户端上使用 OpenFire 服务器进行即时消息传递和 JSJaC JavaScript 库。我是 XMPP 技术的新手。 我想要的是加载时我想发送用户列表并接收每个用户的状态。就像是 $(fu
我正在制作一个 Openfire 插件,用于将消息从服务器发送到客户端。 客户端发送带有自定义扩展名的消息,无需添加属性,因为插件将决定收件人。但是 Openfire 会将其退回给发送者。如何使此
我使用的是Windows server 2012R2并安装了openfire 3.10.2。但现在停止工作吧。当我尝试从窗口服务启动它时,它显示消息 error message 下面是日志.. 201
所以我有这个代码来连接到 openfire XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
目标:- 存储离线消息。 我无法存储离线消息。 我已经安装了用于将消息存储到服务器的监控服务插件。 普通消息存储在 ofMessageArchive 表中,离线消息存储在名为 ofOffline 的表
我正在开发 openfire 插件并面临一些性能问题。我的问题是哪种类型的插件集成最快。 数据包拦截器 智商处理器 组件 其他? 我正在使用数据包拦截器并考虑切换到 IQHandler 并通过 $iq
我通过扩展 AbstractComponent 类,基于 Whack 库构建了一个外部 openfire 组件。我希望客户端订阅我的组件,并在组件上线和离线时接收状态通知。所以我的问题是我们如何处理基
我正在尝试将 Openfire 与我使用 Mysql Workbench 创建的自定义 SQL 数据库连接起来。 我修改了 openfire.xml 文件如下: 9090
我正在为 Android 开发一个简单的聊天工具。我正在阅读有关 Openfire ante asmack API 的信息。显然,用户应该只能看到存储在他的设备中的联系人,所以:我如何知道存储在服务器
我是一名优秀的程序员,十分优秀!