RMI non-JRMP server at remote endpoint

又是一个jmx问题

jmx明明端口占用了, 而且相关java进程也起来了, 为什么会不能通过jconsole访问jmx呢?总是:RMI non-JRMP server at remote endpoint

证书不对吗? 为什么通过的密码,那个机器的jms-ssl证书和我本机的大小不一样? 权限问题? 明明没错的? 拿我的证书拷贝过去, 结果, 还是一样。。。

jmx-client.xml、jmx-server.xml配置问题?修改后报密码不对—— 那说明了原来密码是没问题的! 白名单?—— 我擦,现在的jmx启动加入了白名单功能: 只允许名单内的机器去连接。 加上白名单,重启,还是一样。。。。

他又开始不停的说我“靠猜”了,。。

真TM郁闷。 远程调试吧, 代码对应不上了。方法跳来跳去, 而且又卡, 实在搞不懂啊。。  好像行号不对啊。整个更新本机代码, 刷新,重新远程调试  。。。 仍然不行,,, 下载远端代码,反编译,发现一样的啊, 那为什么不能代码对应上呢 ——— 之前都是好好的,,,,, —— 看日志,我想可能是这样吧。。。 ( 我没意思到,我已经在猜了, 虽然日志提供了一定的证据,但是并不是直接原因)

他又开始不停的说我“靠猜”了。。。

在他的指导下, 添加上源码,代码可以对应得上的调试了

———— 这个就明显不是password的问题了,如果password不对,提示不是这样的。

仔细仔细再看看。 还是明白, 代码跳来跳去,而且远程调试有很卡, 我十分郁闷。

最后还是他看到了原因。说是锁住了—— 我一听,好像是这么回事哦。—— 这代码里面到处是synchronized, 到处是filelock。 等等 , 还有很多的atomic的操作。。。 很多陌生api

我仔细看,可是没看到哪里有死锁啊,—— 他是怎么发现的? 通过jstat? jconsole? jvisualvm? jmap ?  哎

请教, 原来是死循环! 神奇的死循环!! 难怪之前调试有时候看到StackOverFlow呢!  难怪一个方法一直没反应过来呢,难怪他进去后就一直没出来了呢!难怪日志文件分秒不差的毫秒不差的不停打印日志呢!!  原来是死循环!!!  第一次在项目中碰到啊! 神奇了!

A类包含mapProceInfo等等

m1(processName) {

if(mapProceInfo.contains(processName)) {

  复杂的process信息读取过程,并添加到mapProceInfo中。——————  因为配置文件配错了,所以,mapProceInfo一直为空, 此处就显然死循环

  读取过程中又刷新proceInfos, 刷新需要获取proceInfos,获取proceInfos调用的正是mapProceInfo!!!

}

return mapProceInfo.get(processName);

}

如图, 长时间的stepping 即表示了死!循!环!!!

时间: 2024-10-21 17:08:57

RMI non-JRMP server at remote endpoint的相关文章

Step by step Install a Local Report Server and Remote Report Server Database

原创地址:http://www.cnblogs.com/jfzhu/p/4012097.html 转载请注明出处 前面的文章<Step by step SQL Server 2012的安装 >中,介绍过如何安装SQL Server 2012,其中的Database Engine Services和Reporting Services - Native安装在了同一台服务器上,但是为了提高性能,我们可以将Database Engine与Reporting Service分别安装在不同的服务器上.

【BUG】The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid stat

1.报错信息 Caused by: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method 2.解决方法 加锁,保证一个session在某个时刻不会被调用多次 参考:https://blog.csdn.net/qq_20641565/article/details/80857408 原文地

Neo4j图数据库管理系统开发笔记之三:构建安全的RMI Service(Server)

RMI Server(服务端)主要包括以下功能:远程用户权限验证管理.远程服务接口实现类.Neo4j实体映射转换等.项目目录结构如下图所示: 3.2.1 远程用户权限验证管理 3.2.1.1 用户权限验证机制 用户权限验证机制分为三个层级. 第一级,远程主机IP地址验证.检查是否允许远程主机IP地址访问RMI服务. 第二级,远程用户信息验证.检查用户名称和密码是否正确,用户是否启用等. 第三级,远程服务及接口方法验证.检查用户是否有权访问某个RMI服务以及服务下的指定接口方法. 3.2.1.2

Java RMI(远程方法调用) 实例与分析 (转)

目的: 通过本文,可以加深对Java RMI的理解,知道它的工作原理,怎么使用等. 也为了加深我自己的理解,故整理成文.不足之处,还望指出. 概念解释: RMI(RemoteMethodInvocation):远程方法调用,顾名思义,通过远程的方式调用非本地对象的方法并返回结果.使用远程调用通常解决本地计算瓶颈问题,例如分布式记算,最近很火的阿尔法狗人机大战,据说运算使用上千个CPU. JRMP(java remote method protocol):java远程方法协议,这是完成java到j

java RMI入门指南

感觉这篇文章不错,直接转了 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方式之中的一个.事实上它能够被看作是RPC的Java版本号.可是传统RPC并不能非常好地应用于分布式对象系统.而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信.实现远程对象之间的无缝远程调用. RMI眼下使用Java远程消息交换协议JRMP

远程方法调用(RMI)原理与示例

RMI介绍 远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法.这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切.RMI是Java支撑分布式系统的基石,例如著名的EJB组件.RMI是远程过程调用(RPC)的一种面向对象实现,RMI底层是通过socket通信和对象序列化技术来实现的.这里引用Wikipedia对RMI的介绍: The Java Remote Method Invocation (Java RMI) is a Java API that perform

系统间通信(8)——通信管理与RMI 上篇

1.概述 在概述了数据描述格式的基本知识.IO通信模型的基本知识后.我们终于可以进入这个系列博文的重点:系统间通信管理.在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现:再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现.最后我们介绍SOA:面向服务的软件架构. 2.RMI基本使用 RMI(Remote Method Invocation,远程方法调用),是JAVA早在JDK 1.1中提供的JV

远程方法调用(RMI)原理与示例 (转)

RMI介绍 远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法.这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切.RMI是Java支撑分布式系统的基石,例如著名的EJB组件.RMI是远程过程调用(RPC)的一种面向对象实现,RMI底层是通过socket通信和对象序列化技术来实现的.这里引用Wikipedia对RMI的介绍: The Java Remote Method Invocation (Java RMI) is a Java API that perform

JAVA RMI远程通讯

分布式计算系统要求运行在不同地址空间不同主机上的对象互相调用,在Java里提供了完整的sockets通讯接口,但sockets要求客户端和服务端必须进行应用级协议的编码交换数据,采用sockets是非常麻烦的. 一个代替Sockets的协议是RPC(Remote Procedure Call), 它抽象出了通讯接口用于过程调用,使得编程者调用一个远程过程和调用本地过程同样方便.RPC 系统采用XDR来编码远程调用的参数和返回值. 但RPC 并不支持对象,而EJB构造的是完全面向对象的分布式系统,