精华内容
下载资源
问答
  • InvocationTargetException

    2020-05-05 15:11:13
    java.lang.reflect.InvocationTargetException Exception in thread "main" java.lang.OutOfMemoryError: PermGen space Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang....
    信息: Starting Coyote HTTP/1.1 on http-80
    java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Caused by: java.lang.OutOfMemoryError: PermGen space
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    	at java.lang.Class.getDeclaredMethods0(Native Method)
    	at java.lang.Class.privateGetDeclaredMethods(Class.java:2436)
    	at java.lang.Class.privateGetPublicMethods(Class.java:2556)
    	at java.lang.Class.getMethods(Class.java:1412)
    	at org.apache.tomcat.util.modeler.modules.MbeansDescriptorsIntrospectionSource.createManagedBean(MbeansDescriptorsIntrospectionSource.java:304)
    	at org.apache.tomcat.util.modeler.modules.MbeansDescriptorsIntrospectionSource.execute(MbeansDescriptorsIntrospectionSource.java:84)
    	at org.apache.tomcat.util.modeler.modules.MbeansDescriptorsIntrospectionSource.loadDescriptors(MbeansDescriptorsIntrospectionSource.java:77)
    	at org.apache.tomcat.util.modeler.Registry.load(Registry.java:753)
    	at org.apache.tomcat.util.modeler.Registry.loadDescriptors(Registry.java:865)
    	at org.apache.tomcat.util.modeler.Registry.findManagedBean(Registry.java:650)
    	at org.apache.tomcat.util.modeler.Registry.findManagedBean(Registry.java:962)
    	at org.apache.tomcat.util.modeler.Registry.registerComponent(Registry.java:793)
    	at org.apache.catalina.connector.Connector.start(Connector.java:1152)
    	at org.apache.catalina.core.StandardService.start(StandardService.java:531)
    	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    
    
    
    展开全文
  • invocationTargetException

    2020-12-25 19:20:40
    <p>E/Adjust: closeReferrerClient error (null) thrown by (java.lang.reflect.InvocationTargetException) <p>Here my code ... <p>String environment = AdjustConfig.ENVIRONMENT_SANDBOX; AdjustConfig ...
  • java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun....
  • <div><p><code>InvocationTargetException</code> adds nothing to the exception message stacktrace. Lots of issues are reported like ;InvocationTargetException">InvocationTargetException when ...</a> ...
  • InvocationTargetException是什么 JavaDoc一上来就说了: InvocationTargetException is a checked exception that wraps an exception thrown by an invoked method or constructor. InvocationTargetException是...

    InvocationTargetException是什么

    JavaDoc一上来就说了:

    InvocationTargetException is a checked exception that wraps an exception thrown by an invoked method or constructor.
    InvocationTargetException是一个受检查异常,当被调用的方法或构造器内部抛出异常,该异常将会被包装成InvocationTargetException来进行接收

    以下是知乎作者RednaxelaFX对其的描述

    链接:https://www.zhihu.com/question/56718746/answer/150173531
    InvocationTargetException 存在的意义是什么?
    因为“原来的异常”无法直接以一种统一而又明确的方式表达出来,所以使用InvocationTargetException来将原来的异常包装起来,通过多加一层间接层的方式来提供统一的访问途径。
    Java方法可以静态声明它可能会抛出一组固定的异常类型。而反射API里,Method.invoke() 与 Constructor.newInstance() 这些方法有“双重身份”——它们既代表要调用指定的目标方法,自身也是一个方法;目标方法可能会抛出异常,而它们自身在调用目标方法前也可能会抛出一些异常(例如IllegalArgumentException)。它们要调用的目标方法可能抛出任意Throwable类的派生类的异常,但它们自身却不能根据要调用的目标而“动态”改变自己声明要抛出的异常类型,而只能静态声明一组可能抛出的异常类型。声明抛出Throwable或Exception的话,这就太宽泛,难以准确反映异常的原因和意图;但不声明成这么宽泛的异常类型的话又无法完整覆盖所有可能由目标方法抛出的异常。那怎么办?简单,新增一个check exception类型,InvocationTargetException,将原本由目标方法抛出的异常包装起来,这样就可以给Method.invoke() / Constructor.newInstance() 的调用者一个统一的接口,既明确了“这个异常是由目标方法抛出的,不是由我自己抛出的”的意图,又能完整覆盖目标方法所能抛出的所有异常类型(InvocationTargetException.getTargetException() / getCause() 的类型是Throwable)。

    大白话:在反射API里,Method.invoke() 与 Constructor.newInstance() 这些方法本身执行时会出现异常,同时被执行的方法或构造器内部也会出现异常,所以InvocationTargetException将被执行的方法或构造器内部抛出的异常进行包装,可通过InvocationTargetException.getTargetException() / getCause()进行获取,但不能直接使用InvocationTargetException,此时如果直接获取InvocationTargetException.getMessage()将会出现Null

    直接获取被执行的方法或构造器内部抛出的异常的两种方式

    • JDK反射,将会将异常信息封装到InvocationTargetException,可通过InvocationTargetException.getTargetException() / getCause()进行获取
    • ASM反射,可直接通过Exception获取

    Demo验证

    • 引入ASM相关依赖
    <dependency>
        <groupId>com.esotericsoftware</groupId>
    	<artifactId>reflectasm</artifactId>
    	<!-- 版本自行修改 -->
    	<version>1.11.7</version>
    </dependency>
    

    该依赖包底层使用的是如下依赖

    <dependency>
    	<groupId>org.ow2.asm</groupId>
    	<artifactId>asm</artifactId>
    	<version>5.1</version>
    </dependency>
    
    • 测试用例如下:
    import com.esotericsoftware.reflectasm.MethodAccess;
    
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.Objects;
    
    public class AA {
        public static void main(String[] args) {
    
            Demo demo = new Demo();
            try {
                Method method = findMethod(Demo.class, "haha", new Object[]{"niuwa"});
                method.setAccessible(true);
                method.invoke(demo, 0);
            } catch (InvocationTargetException e) {
                // 如果直接使用InvocationTargetException来接收,则可以使用e.getTargetException() 来进行获取
                System.out.println("---------- JDK Invoke Exception ----------");
                // JDK 反射调用,将调用方法抛出的异常放置在Cause中了,Exception为空
                System.out.println("Cause message by JDK reflection:" + e.getTargetException().getMessage());
                System.out.println("Exception message by JDK reflection:" + e.getMessage());
            } catch (Exception e) {
                // 如果直接使用Exception来接收,则可以使用e.getCause() 来进行获取
                System.out.println("---------- JDK Invoke Exception ----------");
                // JDK 反射调用,将调用方法抛出的异常放置在Cause中了,Exception为空
                System.out.println("Cause message by JDK reflection:" + e.getCause().getMessage());
                System.out.println("Exception message by JDK reflection:" + e.getMessage());
            }
    
            try {
                MethodAccess access = MethodAccess.get(Demo.class);
                int setNameIndex = access.getIndex("haha");
                access.invoke(demo, setNameIndex, 0);
            } catch (Exception e) {
                System.out.println("---------- ASM Invoke Exception ----------");
                // JDK 反射调用,将调用方法抛出的异常直接放置在Exception中了,Cause为空
                System.out.println("Cause message by ASM reflection:" + e.getCause());
                System.out.println("Exception message by ASM reflection:" + e.getMessage());
            }
        }
    
        private static Method findMethod(Class<? extends Object> clazz, String methodName, Object[] args) {
            Method[] var6;
            int var5 = (var6 = clazz.getDeclaredMethods()).length;
    
            for (int var4 = 0; var4 < var5; ++var4) {
                Method method = var6[var4];
                if (method.getName().equals(methodName) && Objects.equals(method.getParameterTypes().length, args.length)) {
                    return method;
                }
            }
    
            Class<?> superClass = clazz.getSuperclass();
            if (superClass != null) {
                return findMethod(superClass, methodName, args);
            } else {
                return null;
            }
        }
    }
    
    class Demo {
        public Demo() {
    
        }
    
        public void haha(int param) {
            System.err.println("计算结果:" + 10 / param);
        }
    }
    
    展开全文
  • javax.servlet.ServletException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'event573'. root cause java.lang.RuntimeException: ...
  • (public class InvocationTargetException extends ReflectiveOperationException)(下面的代码是debug跳到的部分) ``` /** * Constructs a InvocationTargetException with a target exception. * * @param ...
  • String msg = null; if (e instanceof InvocationTargetException) { Throwable targetEx = ((InvocationTargetException) e) .getTargetException(); if (targetEx != null) { msg
    String msg = null;
    if (e instanceof InvocationTargetException)
    {
        Throwable targetEx = ((InvocationTargetException) e)
                .getTargetException();
        if (targetEx != null)
        {
            msg = targetEx.getMessage();
        }
    } else
    {
        msg = e.getMessage();
    }
    展开全文
  • java.lang.reflect.InvocationTargetException

    万次阅读 2018-09-25 20:00:41
    java.lang.reflect.InvocationTargetException 微妙的一个异常信息java.lang.reflect.InvocationTargetException。  这几天项目正在不断测试、演示中,当我把项目交给测试和实施部的时候项目一切运行正常,可是...

    java.lang.reflect.InvocationTargetException

    微妙的一个异常信息java.lang.reflect.InvocationTargetException。

      这几天项目正在不断测试、演示中,当我把项目交给测试和实施部的时候项目一切运行正常,可是昨天一实施人员告诉我,系统部署到tomcat中启动运行报出了一个异常,发给我看了一下,我的个乖乖,这个异常信息这么久我还是头一次看见,于是赶紧的上网查了一下资料,后来通过各种测试,环境搭建模拟发现产生该异常信息的主要原因可能是一下几点:

      1、包冲突、有重复包或者缺少包

      2、项目jdk和部署jdk版本不一样,导致InvocationTargetException异常信息返回一个空值,没有调用invoc里的重写消息方法。

      3、映射文件发生改变

    对于不同原因的解决:

      1、包:直接自己挨着查看就是了,但是一定要注意遇到重复包的时候你的系统究竟需要哪一个版本

      2、jdk版本:

        ⑴、更换jdk包

        ⑵、用一个方法统一处理该异常

          private static void handleException(Exception e){

            String msg=null;

            if(e instanceof InvocationTargetException){

              Throwable targetEx=((InvocationTargetException)e).getTargetException();

              if(targetEx t!=null){

                msg=targetEx.getMessage();

              }

            }else{

              msg=e.getMessage();

            }

          MessageDialong.openError(Activator.getDetDefault().getWorkbench().getDisplay().getActiveshell(),"error",msg);

          e.printStackTrace();

          }

        3、映射文件发生改变

          在项目中有的地方是使用反射机制进行的操作,可能对于类进行了某些更改,科室映射文件没有更改,采用匿名就会出现这样的问题,解决办法要么更改映射文件,要不不要使用匿名调用。

     

    没有克服不了的困难,只有畏惧的心。 生活之所以耀眼,是因为磨难与辉煌会同时出现。所以,别畏惧暂时的困顿,即使无人鼓掌,也要全情投入,优雅坚持。请相信:不管多险峻的高山,总会给勇敢的人留一条攀登的路。只要你肯迈步,路就会在你脚下延伸。

    展开全文
  • java.lang.reflect.InvocationTargetException [testng] [testng] Error invoking getEJBContainer() on amx:pp=/domain/configs/config[server-config]/log-service,type=module- log-levels = java....
  • java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun....
  • InvocationTargetException 当java反射调用方抛出异常时,就会用InvocationTargetException将原异常包裹; UndeclaredThrowableException java动态代理时抛出的异常。当对某接口进行动态代理,接口的方法名称上未...
  • java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun....
  • Constructs a InvocationTargetException with a target exception 这个异常是指反射异常 一走到这个地方就报错,显示是有可能会报空指针,但是参数都是有的 查询之后,发现是dao也就是我的这个mapper...
  • * Constructs a InvocationTargetException with a target exception. * * @param target the target exception */ public InvocationTargetException(Throwable target) { super((Throwable)null); // ...
  • InvocationTargetException异常

    千次阅读 2015-11-01 09:52:51
    InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收。 百度了一下,是这样说的: 一、InvocationTargetException 是一种包装由...
  • <p>javax.servlet.ServletException: java.lang.reflect.InvocationTargetException while attempting to process a 'command' event for 'searchButtonBottom'. <p>root cause <p>java.lang....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,486
精华内容 2,994
关键字:

invocationtargetexception