gpt4 book ai didi

java - 在托管 bean 中使用 ModelMapper 库的自定义映射会导致 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 17:04:58 29 4
gpt4 key购买 nike

当我尝试通过在某些容器管理的对象中创建自定义映射器来添加映射时,我收到 NullPointerException 。我在@Stateless EJB服务和@RequestScoped Rest服务中尝试过。错误类似并且发生在以下行中:

modelMapper.addMappings(skipCdeMap);

这是一个错误吗?我假设映射器正在尝试对托管 bean 执行一些反射操作,因此会得到 NullPointerException。

这是我的代码:

PropertyMap<ObjectAbcDto, ObjectAbc> skipCdeMap =
new PropertyMap<ObjectAbcDto, ObjectAbc>() {
protected void configure() {
skip().setObjectCde(null);
}
};

modelMapper.addMappings(skipCdeMap);

这是错误:

13:37:03,453 ERROR [stderr] (default task-12) org.modelmapper.ConfigurationException: ModelMapper configuration errors:
13:37:03,453 ERROR [stderr] (default task-12)
13:37:03,453 ERROR [stderr] (default task-12) 1) Error reading class com.app.SomeRestEasyService$1
13:37:03,453 ERROR [stderr] (default task-12)
13:37:03,453 ERROR [stderr] (default task-12) 2) Failed to configure mappings
13:37:03,454 ERROR [stderr] (default task-12)
13:37:03,454 ERROR [stderr] (default task-12) 2 errors
13:37:03,454 ERROR [stderr] (default task-12) at org.modelmapper.internal.Errors.throwConfigurationExceptionIfErrorsExist(Errors.java:241)
13:37:03,454 ERROR [stderr] (default task-12) at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:206)
13:37:03,454 ERROR [stderr] (default task-12) at org.modelmapper.internal.TypeMapImpl.addMappings(TypeMapImpl.java:72)
13:37:03,454 ERROR [stderr] (default task-12) at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:101)
13:37:03,454 ERROR [stderr] (default task-12) at org.modelmapper.ModelMapper.addMappings(ModelMapper.java:93)
13:37:03,454 ERROR [stderr] (default task-12) at com.app.SomeRestEasyService.create(SomeRestEasyService.java:129)
13:37:03,454 ERROR [stderr] (default task-12) at com.app.SomeRestEasyService$Proxy$_$$_WeldClientProxy.create(Unknown Source)
[...]
13:37:03,459 ERROR [stderr] (default task-12) Caused by: java.lang.NullPointerException
13:37:03,459 ERROR [stderr] (default task-12) at org.modelmapper.internal.ExplicitMappingBuilder.validateVisitedMappings(ExplicitMappingBuilder.java:236)
13:37:03,459 ERROR [stderr] (default task-12) at org.modelmapper.internal.ExplicitMappingBuilder.visitPropertyMap(ExplicitMappingBuilder.java:227)
13:37:03,459 ERROR [stderr] (default task-12) at org.modelmapper.PropertyMap.configure(PropertyMap.java:380)
13:37:03,459 ERROR [stderr] (default task-12) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
13:37:03,459 ERROR [stderr] (default task-12) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
13:37:03,459 ERROR [stderr] (default task-12) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
13:37:03,460 ERROR [stderr] (default task-12) at java.lang.reflect.Method.invoke(Method.java:606)
13:37:03,460 ERROR [stderr] (default task-12) at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:194)
13:37

最佳答案

我可以回答我自己的问题。我的假设是正确的。当我在 Pojo 或它自己的专用类中创建 PropertyMap 类时,映射效果很好。所以我想我之前的错误是由于 ModelMapper 在创建 PropertyMap 的类上进行的反射而发生的。如果它是一些 Menged Bean,则会导致 NullPointerException。

关于java - 在托管 bean 中使用 ModelMapper 库的自定义映射会导致 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com