Constructor.newInstance() выдает исключение java.lang.reflect.InvoctionTargetException, даже если конструктор существует

Мой текущий код выглядит примерно так:

// Overridden constructors
public class InstRoMapping{

    public InstRoMapping(){}

    public InstRoMapping(Mappings mappings, ResourceMapping resourceMapping){
        this.resourceId = mappings.getResourceId();
        this.version = BigDecimal.valueOf(mappings.getVersion());
        // ... more code
    }
}

Где-то в другом сервисемп фн -

Constructor constructor = entityClass.getConstructor(mongoClass, iterableClass);
// debugger shows constructor is - InstRoMapping(Mappings,ResourceMapping)
for(T data : mongoData){
    List<Object> ob = (List<Object>) getMethod.invoke(data, null);
    for(Object o : ob){
        T flattenedObject = (T) constructor.newInstance(data, o);
        //debugger shows data is of type - Mappings and o is of type - ResourceMapping
    }
}

Но во время выполнения внутри цикла for выдается исключение constructor.newInstance(data, o)

Исключение -

java.lang.reflect.InvocationTargetException: null  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)  at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)  at com.citi.insight.resource.mongotooraclemigration.service.impl.MongoOracleServiceImpl.getMongoDataAsRequired(MongoOracleServiceImpl.java:61)  at com.citi.insight.resource.mongotooraclemigration.service.impl.MongoOracleServiceImpl.insertIntoOracleDb(MongoOracleServiceImpl.java:74)  at com.citi.insight.resource.mongotooraclemigration.MigrationController.migrateMongoToOracle(MigrationController.java:43)  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  at java.base/java.lang.reflect.Method.invoke(Method.java:566)  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at com.citi.insight.userdetailscache.domain.impl.JwtRequestFilter.doFilterInternal(JwtRequestFilter.java:142)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)  at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)  at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)  at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)  at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)  at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at org.springframework.cloud.sleuth.instrument.web.servlet.TracingFilter.doFilter(TracingFilter.java:68)  at org.springframework.cloud.sleuth.autoconfig.instrument.web.TraceWebServletConfiguration$LazyTracingFilter.doFilter(TraceWebServletConfiguration.java:131)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)  at org.springframework.cloud.sleuth.instrument.web.tomcat.TraceValve.invoke(TraceValve.java:103)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.NullPointerException: null  at com.citi.insight.resource.ora.model.InstRoMapping.<init>(InstRoMapping.java:339)  ... 99 common frames omitted 

Однако он отлично работает с другим классом с аналогичным конструктором -

public class InstRoCoversheet {
     public InstRoCoversheet(Coversheets coversheet, ResourceCoverSheet resourceCoverSheet){
        this.resourceId = coversheet.getResourceId();
        // ... more code here
     }
}

Кто-нибудь может помочь? Заранее спасибо!

Что может вызвать исключение java.lang.reflect.IndictionTargetException?. В вашем случае - Caused by: java.lang.NullPointerException: null at com.citi.insight.resource.ora.model.InstRoMapping.<init>(Ins‌​tRoMapping.java:339) - это означает, что либо data, либо o имеет значение null (скорее всего).
Chaosfire 08.03.2024 18:50

как отмечалось выше, важная часть находится в самом конце этого ЧРЕЗВЫЧАЙНО ДЛИННОГО сообщения об ошибке (интересно, где закончился символ новой строки). Теперь нам просто нужно знать, какая строка 339 из InstRoMapping.java

user85421 08.03.2024 18:52

@Chaosfire, ты прав. атрибут внутри o был нулевым. Я делал с ним какую-то операцию. и это бросало npe. Спасибо!

PuneethC99 08.03.2024 19:06

Пожалуйста, отформатируйте трассировку стека правильно.

user207421 08.03.2024 21:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
158
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как предполагалось в комментариях, это была проблема с номером 339 в InstRoMapping.java. Она создавала NPE внутри переопределенного конструктора.

Другие вопросы по теме

Похожие вопросы

Как подключиться изнутри контейнера Docker к операционной системе хоста?
Как бы вы напечатали n-й член этого ряда y = -(1)-(1+2)+(1+2+3)+(1+2+3+4)-(1+2+3+4+ 5) .... (1+2+3+4...+n) в Java
Сценарий командной строки для красивой печати сериализованных объектов Java в журналах?
Игра «Ханойские башни» в javafx — ничего не отображается, пока игра не будет полностью решена
Почему значение статической переменной печатается перед сообщением о запуске системы на выходе
Android.database.sqlite.SQLiteException: такой таблицы нет: contact_details (код 1): , при компиляции: INSERT INTO contact_details(..) VALUES (?,??,?)
TransformerFactory.newInstance(...) уязвим для атак внешних объектов XML и XSLT
Есть ли в Java какой-то пул, который позволяет избежать повторения последних арифметических операций?
Как добавить две переменные, которые находятся в двух разных методах Java?
Не найден зарегистрированный поставщик ресурсов для местоположения «eastus2» и версии API «2018-01-01» для типа «storageAccounts/blobServices»