InvocationTargetException异常分析

java.lang.reflect.InvocationTargetException


报此异常,是该方法内try {}catch(){抛出异常e.printStackTrace()},或者调用远程服务器所导致的一样:例如:


总结以下导致原因;

1.远程代码ip加端口获取远程跨服拒绝连接和服务器未启动所导致的,是由调用方法或构造方法所抛出异常的受检查的异常.

2.有可能web项目下的jar包缺失导致,,详细检查控制台报出的异常日志信息,再对应查找相关jar包.或重复包

3.在本机电脑测试出没有问题,打出war包确在war包运行服上报此异常, 请检查tomcat服务器版本,做好一致,或者war包服高于本服.

4.开发jdk和部署jdk版本不一致,导致InvocationTargetException异常信息返回一个空值。调用不上重写的方法

如果发生此异常!请不要慌张.如果我点web页面,发生此异常他的报错信息如下:

java.lang.reflect.InvocationTargetException: [Rose-1.0.1-20100604@Spring-3.2.0.M1]Error happended: POST /game-admin/queryServer/getServerData->Object getServerData(int) params=[0]
net.paoding.rose.web.impl.thread.ActionEngine.createException(ActionEngine.java:426)
net.paoding.rose.web.impl.thread.ActionEngine.execute(ActionEngine.java:308)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.ControllerEngine.execute(ControllerEngine.java:83)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.ModuleEngine.innerInvoke(ModuleEngine.java:122)
net.paoding.rose.web.impl.thread.ModuleEngine.execute(ModuleEngine.java:112)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.RootEngine.execute(RootEngine.java:126)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.Rose.innerStart(Rose.java:250)
net.paoding.rose.web.impl.thread.Rose.start(Rose.java:109)
net.paoding.rose.RoseFilter.doFilter(RoseFilter.java:332)
root cause
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
net.paoding.rose.web.impl.thread.ActionEngine$InvocationChainImpl.doNext(ActionEngine.java:398)
net.paoding.rose.web.ControllerInterceptorAdapter.round(ControllerInterceptorAdapter.java:136)
net.paoding.rose.web.ControllerInterceptorAdapter.roundInvocation(ControllerInterceptorAdapter.java:104)
net.paoding.rose.web.InterceptorDelegate.roundInvocation(InterceptorDelegate.java:103)
net.paoding.rose.web.impl.thread.ActionEngine$InvocationChainImpl.doNext(ActionEngine.java:383)
net.paoding.rose.web.impl.thread.ActionEngine.innerExecute(ActionEngine.java:360)
net.paoding.rose.web.impl.thread.ActionEngine.execute(ActionEngine.java:306)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.ControllerEngine.execute(ControllerEngine.java:83)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.ModuleEngine.innerInvoke(ModuleEngine.java:122)
net.paoding.rose.web.impl.thread.ModuleEngine.execute(ModuleEngine.java:112)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.RootEngine.execute(RootEngine.java:126)
net.paoding.rose.web.impl.thread.LinkedEngine.execute(LinkedEngine.java:60)
net.paoding.rose.web.impl.thread.Rose.doNext(Rose.java:121)
net.paoding.rose.web.impl.thread.Rose.innerStart(Rose.java:250)
net.paoding.rose.web.impl.thread.Rose.start(Rose.java:109)
net.paoding.rose.RoseFilter.doFilter(RoseFilter.java:332)
root cause


com.caucho.hessian.client.HessianRuntimeException: java.net.ConnectException: Connection refused: connect
com.caucho.hessian.client.HessianProxy.sendRequest(HessianProxy.java:281)
com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
com.sun.proxy.$Proxy42.getQueryServerData(Unknown Source)

这是页面上面在服务器上反馈回来的页面信息;上面可以看出这是post请求,Connection refused: connect服务器拒绝连接.所导致.

在开发过程中,如果以上解释还未解决这个InvocationTargetException异常报错信息.

还有一个大招,大家都知道异常类的最父类是Exception.


请把你包此方法的try catch异常抛出变成父类,就如愿以偿的解决了此问题!然后在抛出中加入日志提示.


  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: hutool是一款Java工具库,提供了丰富的工具类和方法,可以方便地进行字符串、日期、加密等操作。而java.lang.reflect.invocationtargetexceptionJava中的一个异常类,表示在反射过程中出现错误或异常。它通常是由于方法或构造函数的反射调用失败而抛出的。 在hutool中,如果使用反射来调用方法或构造函数时出现异常,可能会抛出java.lang.reflect.invocationtargetexception。这种异常一般是由原始方法或构造函数内部的另一个异常引发的,而且在反射调用过程中无法直接捕获和处理。 出现这种异常的原因可能有多种。例如,当通过反射调用一个私有方法时,如果没有足够的权限或权限被限制,就会抛出该异常。另外,如果反射调用的方法或构造函数的参数列表与给定的参数不匹配,也会引发该异常。此外,如果反射调用的方法或构造函数本身就存在逻辑错误或其他异常,也会导致java.lang.reflect.invocationtargetexception。 要解决这个问题,可以通过分析异常堆栈信息来找到具体的问题所在,然后根据具体的情况来进行调整。可以检查反射调用的方法或构造函数的参数是否正确,是否存在权限问题,或者在反射调用之前进行其他必要的检查。 在实际开发中,当使用hutool进行反射操作时,如果遇到java.lang.reflect.invocationtargetexception,应该仔细检查代码,并根据异常信息来进行调试和排查。同时,需要保证参数的正确性和权限的允许,以确保反射调用的正常执行。 ### 回答2: Hutool是一个Java工具库,提供了丰富的工具类和方法,用于简化开发过程中常见任务的处理。java.lang.reflect.InvocationTargetExceptionJava反射机制中的一个异常类型。当使用反射方法调用目标方法时,如果目标方法内部抛出了异常,那么Java会将这个异常包装成InvocationTargetException并抛出。回答你的问题时需要考虑两个方面。 首先,Hutool库本身不会直接抛出InvocationTargetException异常。Hutool库中的方法可能会使用反射机制调用其他方法,导致InvocationTargetException异常的抛出。这种情况下,需要检查Hutool库所在的代码,查找具体是哪个方法导致了InvocationTargetException异常的出现,并根据具体情况进行处理。 其次,如果你在使用Hutool库的过程中遇到了InvocationTargetException异常,需要仔细分析异常的产生原因。InvocationTargetException异常本身只是一个包装异常,它表示目标方法内部发生了异常。因此,你需要检查具体被调用的目标方法,判断它内部是否有可能出现异常的情况。可以通过捕获InvocationTargetException异常,并使用getCause方法获取到原始的异常信息,从而定位问题的根源。 综上所述,Hutool库的使用并不直接导致InvocationTargetException异常的抛出,而是在使用反射机制调用目标方法时可能会出现该异常。因此需要仔细分析具体的代码和异常信息,才能找到解决问题的方法。 ### 回答3: "hutool java.lang.reflect.invocationtargetexception" 是一种异常信息,在Java编程中经常会遇到。它表示在使用Hutool工具包进行编程时,调用了某个方法或访问了某个属性,但在执行过程中发生了一个异常异常类型是InvocationTargetExceptionInvocationTargetException表示一个方法或构造函数的调用导致了异常,在方法或构造函数的代码中发生了一个未捕获的异常。通常情况下,该异常是由于在反射调用方法时发生了异常。 该异常的最常见原因是调用的方法本身抛出了异常,而在反射调用方法时,该异常被包装在InvocationTargetException中返回。这种情况下,我们需要注意查看被调用方法的具体异常信息,以便找到问题所在。 要解决这个异常,我们可以采取以下几个步骤: 1. 查看异常的详细信息:可以通过打印堆栈跟踪或查看调试器中的异常信息来获取更多细节。异常信息可能包含导致该异常的具体原因,例如所调用方法抛出的异常类型和具体原因。 2. 检查被调用方法的参数和返回值:确保在调用方法时传递了正确的参数,并且期望的返回值类型与实际返回值类型匹配。 3. 检查依赖库的版本:Hutool工具包可能使用了其他依赖库,在项目中确保相关依赖库的版本兼容性,避免版本不一致引发的异常。 4. 使用try-catch捕获异常:在使用反射调用方法时,可以在代码中使用try-catch块捕获InvocationTargetException异常,并处理其中的原始异常信息。 总结来说,hutool java.lang.reflect.invocationtargetexception异常是由Hutool工具包在反射调用方法时抛出的异常,可能是被调用方法本身抛出了异常,或者是其他原因导致的。通过查看详细信息、检查参数和返回值、检查依赖库版本和使用try-catch捕获异常来解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值