使用telnet连接到基于spring的应用上执行容器中的bean的任意方法 使用telnet连接到基于spring的应用上执行容器中配置的任何bean的任意方法,可以用来诊断某个方法是否执行有问题,响应时间多少,在生产环境中可以很好的定位及监控方法是否存在问题。 代码在:https://github.com/zhwj184/springInvokemonitor git clone git@github.com:zhwj184/springInvokemonitor.git maven clean install pom依赖: <dependency> <groupId>org.zhwj184</groupId> <artifactId>springinvokemonitor</artifactId> <version>1.0-SNAPSHOT</version> </dependency> 使用方式,在spring的配置文件中添加下面这个bean即可。 <bean id="ServiceInvokeClient" class="org.zhwj184.ServiceInvokeClient" /> 使用示例:先写一个service TestBean,里面有两个方法,add和addBean import com.alibaba.fastjson.JSON; public class TestBean { public float add(int a, float b){ return a + b; } public A addBean(A a, A b){ A c = new A(); c.setC(a.getC() + b.getC()); c.setD(a.getD() + b.getD()); return c; } public static void main(String[] args) { A c = new A(); c.setC(23); c.setD(323.34); System.out.println(JSON.toJSON(c)); } } class A{ int c ; double d; public int getC() { return c; } public void setC(int c) { this.c = c; } public double getD() { return d; } public void setD(double d) { this.d = d; } } 然后在spring配置文件 service.xml添加 <bean id="testBean" class="org.zhwj184.TestBean" /> <bean id="ServiceInvokeClient" class="org.zhwj184.ServiceInvokeClient" /> 写一个测试类,执行这个main方法, import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainTest { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:service.xml"); Thread.sleep(100000000); } } 然后通过telnet连到这个服务上,打开命令行窗口,输入telnet localhost 12667,连上之后,输入ls bean名称,即可查询这个bean的所有方法,使用invoke beanname.method(param1,param2) 执行某个方法,参数如果为bean则可以使用json格式传入,参数之间用;分隔 ====================================================== Welcome to Telnet Server: Version 1.0 ====================================================== List of possible commands: Status: displays the status of the server cd : [ cd /usr/local] pwd: displays the working directory ls: displays list of files in the working directory mkdir : [ mkdir /usr/local/tmp] exit : quit this programme ls testBean org.zhwj184.A org.zhwj184.TestBean.addBean(org.zhwj184.A,org.zhwj184.A) void org.zhwj184.TestBean.main([Ljava.lang.String;) float org.zhwj184.TestBean.add(int,float) int org.zhwj184.TestBean.hashCode() java.lang.Class org.zhwj184.TestBean.getClass() void org.zhwj184.TestBean.wait(long,int) void org.zhwj184.TestBean.wait() void org.zhwj184.TestBean.wait(long) boolean org.zhwj184.TestBean.equals(java.lang.Object) java.lang.String org.zhwj184.TestBean.toString() void org.zhwj184.TestBean.notify() void org.zhwj184.TestBean.notifyAll() invoke testBean.add(1;2.4) result:java.lang.Float 3.4 run time: 0ms invoke testBean.addBean({"c":23,"d":323.34};{"c":3433,"d":3232433.34}) result:org.zhwj184.A {"c":3456,"d":3232756.6799999997} run time: 0ms 这样可以诊断spring容易中任何bean的任意方法,执行方法,看看返回结果是否跟预期的一致。一般生产环境跟测试环境很多依赖条件(数据库,服务等)都不一样,所以线上出现问题一般都可以知道参数,通过执行方法就可以看看结果是否正确,并且查看某个方法的执行时间来看方法是否有性能问题。 不过这里的代码只是简单做个示例,代码中关于参数的类型,结果匹配反射等可能不够完善也没有测试得很充分,有问题有兴趣的环境反馈给我。
相关推荐
SecureCRT脚本,可批量telnet并执行命令,例如交换机,路由器等,要求所有账号密码一样,ip地址写在ip.txt,和脚本放在一个目录
java-telnet连接远程服务器并执行shell命令 具体代码 java-telnet
telnet 客户端的c++实现,socket模拟实现telnet 的远程连接。以及telnet 的模拟其他指令发送 接收。
Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢? Telnet服务虽然也属于客户机/服务器模型的...
一键连接Telnet客户机并执行指令,右键编辑IP、用户名、密码和指令
java源代码,通过telnet方式连接服务器,可以设置是否记录日志等信息。经过稍微改动可以实现类似crt软件的功能。
使用批处理实现telnet自动登陆并执行ping命令
Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢? Telnet服务虽然也属于客户机/服务器模型的...
这是一个采用fibjs编写的telnet客户端,具有连接、登录及远程执行命令等功能
使用方法: 1、 在D盘新建一个文件夹,命名为backup,打开文件夹,新建list.txt,编辑这个文本文件,每行输入4列分别是:ip 用户名 密码 设备名称; 例如:111.50.0.1 huawei huawei@123 HW-NE5000E-1(有多少...
Telnet连接
基于Linux中telnet批量测试网络脚本.docx 基于Linux中telnet批量测试网络脚本.docx 基于Linux中telnet批量测试网络脚本.docx 基于Linux中telnet批量测试网络脚本.docx 基于Linux中telnet批量测试网络脚本.docx 基于...
重新安装机器的情况下我们经常会遇到的一个情况是telnet到server速度很快,但是ssh连接的时候却很慢,大概 要等半分钟甚至更久。ping的速度也非常好,让人误以为是ssh连接不上。
用于自动telnet登录到设备,并执行一些自定义命令 并且输出日志导窗口和日志文件中,日志文件保存在dist下,以 ip地址命名的。
基于linux中实现telnet批量测试网络脚本.doc 基于linux中实现telnet批量测试网络脚本.doc 基于linux中实现telnet批量测试网络脚本.doc 基于linux中实现telnet批量测试网络脚本.doc 基于linux中实现telnet批量测试...
XP之后系统没有自带telnet,上传一个供大家使用
telnet.exe是一款计算机中一个远程登录软件,通过它你可以进行远程登录,而且可以填写命令控制计算机,其中有两个版本适合windows系统,该程序默认存储在C:\windows\system32文件夹,如有需要欢迎下载使用。
自动连接数据库 运行命令形如 ftprun1.bat 192.168.48.1 或 telnetcmd1.bat 192.168.48.1
自己编辑的一个java-jar,是用telnet和ssh连接远端服务器的开发应用
java 实现telnet服务器执行脚本