我想弄明白那个错误是什么。当我将mongoDB放到另一个实例中时,它就开始发生了。
错误有一个很大的信息,但它没有说什么,也没有已知的触发它的操作。
错误消息图像:
@Log
@WebListener
public class AppServletContextListener implements ServletContextListener {
@Inject
MongoClientProvider mongo;
@Override
public void contextDestroyed(ServletContextEvent arg) {
log.info("ServletContextListener destroyed");
DbUtils.closeMongoConnections(mongo);
}
@Override
public void contextInitialized(ServletContextEvent arg) {
log.info("ServletContextListener started");
}
}
.
public class DbUtils {
public static void closeMongoConnections(MongoClientProvider mongo) {
mongo.getDeletedGroups().getManager().close();
mongo.getMessages().getManager().close();
mongo.getGameficationInfos().getManager().close();
mongo.getDgsa().getManager().close();
mongo.getRisa().getManager().close();
mongo.getExpiredEmailLinks().getManager().close();
}
}
您已经从错误中删除了有用的部分,但它已经出现在屏幕截图中。在at Tue Jan 12 19:34:31 UTC 2016
部分之前也会有一些内容,它会告诉您错误来自ASURLClassLoader
并告诉您一些关于类加载器状态的信息。
关键部分是图像中的最后一行:
...
was requested to find class org.bson.codecs.EncoderContext$1 after done was invoked from the following stack trace
它所讨论的done()
方法是一个清理方法,当类加载器准备好进行垃圾收集时调用该方法。因此,此时,EncoderContext
类正在尝试加载一个类,但是它到达的AsurlClassLoader
处于被标记为要清理但尚未清理的这种边缘状态。
我以前也见过类似的问题,目前正在针对Payara服务器进行调查,Payara服务器是从GlassFish派生出来的。如果您能在Payara Github存储库中提出一个问题,我将不胜感激:https://Github.com/Payara/Payara/issues
在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续对此进行研究。在此之前,我们将继续进行研究。
编辑:实际上,仔细看ASURLClassLoader
堆栈(大屏幕截图),它看起来像是因为取消部署而调用了done()
。因此,MongoDB很可能是从一个未部署的应用程序中调用的,同时也没有处理MongoDB。
这可能是您想要的,但在这种情况下,MongoDB资源不应该从应用程序中创建。否则,需要在取消部署应用程序之前对其进行适当的销毁。
ELIFECYCLE是什么意思? 我在寻找两个答案中的一个:ELIFECYCLE是什么意思?(或者)为什么我的应用程序代码中出现错误?
套接字由ip:port定义。服务器和客户端都将有自己的套接字 套接字连接由五个touples定义:server_ip、server_port、client_ip、client_port、protocol 套接字描述符是标识套接字的整数值 我尝试实现自己的服务器,其中socket()和accept()返回不同的套接字描述符值(总是这样吗?)。我的问题是,为什么说accept()会创建一个新的套接字,
问题内容: 这是什么? 这是有关警告,错误和注意事项的许多答案,这些警告,错误和注意事项在您对PHP进行编程时可能会遇到,并且不知道如何解决它们。这也是一个社区Wiki,因此邀请所有人参与添加并维护此列表。 为什么是这样? 诸如“已发送标题”或“呼叫非对象成员”之类的问题经常在堆栈溢出中弹出。这些问题的根本原因总是相同的。因此,这些问题的答案通常会重复它们,然后向OP显示在特定情况下应更改的行。这
本文向大家介绍max字段在MongoDB db。 .stats()的输出中意味着什么?,包括了max字段在MongoDB db。 .stats()的输出中意味着什么?的使用技巧和注意事项,需要的朋友参考一下 使用最大字段为了限制收集中的文档数。以下是使用上限集合中的max字段的查询- 让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-
我想创建一个