当前位置: 首页 > 知识库问答 >
问题:

Spring Boot上下文持续尝试连接到java rmi服务器但失败

金阳华
2023-03-14
@Component
public class EmailMonitor implements ApplicationListener<ContextRefreshedEvent> {
    private static final Logger log = LoggerFactory.getLogger(EmailMonitor.class);

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
       // monitor emails
...
}
"RMI TCP Connection(1)-192.168.1.18: name = \"[Ljava.rmi.server.ObjID;\", codebase = \"\", defaultLoader = jdk.internal.loader.ClassLoaders$PlatformClassLoader@332228c4","logger_name":"sun.rmi.loader"...
...
{"@timestamp":"2021-05-10T17:01:22.212+01:00","@version":"1","message":"RMI TCP Connection(1)-192.168.1.18: name = \"javax.management.ObjectName\", codebase = \"\"","logger_name":"sun.rmi.loader","thread_name":"RMI TCP Connection(1)-192.168.1.18","level":"DEBUG","level_value":10000,"appname":"email-notifier"}
{"@timestamp":"2021-05-10T17:01:22.213+01:00","@version":"1","message":"connectionId=rmi://192.168.1.18  4, name=org.springframework.boot:type=Admin,name=SpringApplication, attribute=Ready","logger_name":"javax.management.remote.rmi","thread_name":"RMI TCP Connection(1)-192.168.1.18","level":"DEBUG","level_value":10000,"appname":"email-notifier"}
{"@timestamp":"2021-05-10T17:01:22.213+01:00","@version":"1","message":"RMI TCP Connection(1)-192.168.1.18: [192.168.1.18] exception: ","logger_name":"sun.rmi.server.call","thread_name":"RMI TCP Connection(1)-192.168.1.18","level":"DEBUG","level_value":10000,"stack_trace":"javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication\n\tat java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1083)\n\tat java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:637)\n\tat java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)\n\tat java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1443)\n\tat java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)\n\tat java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)\n\tat java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:637)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:567)\n\tat java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)\n\tat java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)\n\tat java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:691)\n\tat java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)\n\tat java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)\n\tat java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)\n\tat java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:391)\n\tat java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)\n\tat java.base/java.lang.Thread.run(Thread.java:831)\n","appname":"email-notifier"}
{"@timestamp":"2021-05-10T17:01:22.214+01:00","@version":"1","message":"[javax.management.remote.rmi.RMIConnectionImpl@6d666aa: connectionId=rmi://192.168.1.18  4] closing.","logger_name":"javax.management.remote.rmi","thread_name":"RMI TCP Connection(1)-192.168.1.18","level":"DEBUG","level_value":10000,"appname":"email-notifier"}
{"@timestamp":"2021-05-10T17:01:22.214+01:00","@version":"1","message":"[javax.management.remote.rmi.RMIConnectionImpl@6d666aa: connectionId=rmi://192.168.1.18  4] closed.","logger_name":"javax.management.remote.rmi","thread_name":"RMI TCP Connection(1)-192.168.1.18","level":"DEBUG","level_value":10000,"appname":"email-notifier"}

对此有什么想法吗?我不确定RMI服务器在此上下文中的角色是什么(我正在努力寻找将Spring和RMI绑定在一起的doc引用)。我的理解是Spring将启动它需要的服务,但显然不是在这种情况下。

共有1个答案

全飞扬
2023-03-14

我想你误解了spring上下文侦听器的概念。

Spring应用程序上下文在Spring驱动的应用程序启动期间启动。它有各种“钩子”--一旦发生,你可以监听并得到通知。因此,是的,上下文可以被刷新,当它发生时,监听器“触发”并执行您的代码。但仅此而已--当上下文开始时,它实际上不会做任何有用的事情。例如,您可以在这里阅读上下文事件。

因此,考虑到这一点,基本上应用程序上下文会被刷新一次,并且在应用程序启动期间,侦听器也只会被调用一次。

 类似资料:
  • 问题内容: 环境文件: Routes.php: 我得到的错误: *Connector.php第55行中的 *PDOException : SQLSTATE [HY000] [2002]连接尝试失败,因为一段时间后连接方未正确响应,或者由于连接的主机未能响应,所以建立的连接失败。 我的问题是: 我正在尝试从计算机连接到远程MySQL服务器 而且我不明白为什么它不起作用? 我应该怎么做才能连接? 我想

  • 我试图使用System.net.ftpWebResponse连接到FTP服务器,但遇到了TLS问题; 如果我使用此配置: 我得到这个错误: 正确的配置是什么? ------更新我不知道它是否有任何相关性,但我尝试了一个工具来检查ftp服务器,我得到了这个;我真的不知道这些意味着什么 通过NPN+ALPN以外的套接字测试协议 您不应继续,因为未检测到任何协议。如果你真的真的想,说“YES”-->YE

  • 我无法连接到我创建的MySQL Amazon RDS实例。 我正在按照AWS RDS教程进行连接并进入: 工作台上“主机”中的endpoint 包括用户名和密码的凭据 端口设置为3306 我得到了一个错误: 无法连接到数据库服务器 您尝试将用户“master”连接到xxxx的MySQL服务器失败。rds。亚马逊。com:3306: 无法连接到xxxx上的MySQL服务器。亚马逊。com'(1006

  • 我创建了spring项目来对postgres数据库服务器进行CRUD,但出现了一些错误。 无法获得查询元数据的连接 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。openConnectionImpl(ConnectionFactoryImpl.java:313)~[postgresql-42.3.1.ja

  • 我正在尝试连接到另一个集成身份验证的盒子上的SQLServer 2008。我的环境包括64位Java7、64位Eclipse和64位Windows 7。我使用了Microsoft提供的JDBC驱动程序。使用32位Java一切正常。但是,使用64位Java,我得到了以下信息: “警告:无法加载sqljdbc_auth.dll原因:C:\程序文件 (x86)\适用于 SQL Server\sqljdb