当前位置: 首页 > 知识库问答 >
问题:

ModelMapper中的ClassCastException:无法强制转换EnhancerByModelMapper

年风华
2023-03-14
Caused by: org.modelmapper.ConfigurationException: ModelMapper configuration errors:

1) Failed to configure mappings

1 error
        at org.modelmapper.internal.Errors.throwConfigurationExceptionIfErrorsExist(Errors.java:241) ~[modelmapper-0.7.4.jar:na]
        at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:207) ~[modelmapper-0.7.4.jar:na]
        at org.modelmapper.internal.TypeMapImpl.addMappings(TypeMapImpl.java:72) ~[modelmapper-0.7.4.jar:na]
        at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:101) ~[modelmapper-0.7.4.jar:na]
        at org.modelmapper.ModelMapper.addMappings(ModelMapper.java:93) ~[modelmapper-0.7.4.jar:na]
        at configs.AppConfig.modelMapper(AppConfig.java:109) ~[na:na]
        at configs.AppConfig$$EnhancerBySpringCGLIB$$b19a8688.CGLIB$modelMapper$2(<generated>) ~[na:na]
        at configs.AppConfig$$EnhancerBySpringCGLIB$$b19a8688$$FastClassBySpringCGLIB$$1f1c1728.invoke(<generated>) ~[na:na]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.2.0.RELEASE.jar:4.2.0.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:318) ~[spring-context-4.2.0.RELEASE.jar:4.2.0.RELEASE]
        at configs.AppConfig$$EnhancerBySpringCGLIB$$b19a8688.modelMapper(<generated>) ~[na:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_45]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.2.0.RELEASE.jar:4.2.0.RELEASE]
        ... 64 common frames omitted
Caused by: java.lang.ClassCastException: project.entities.User$$EnhancerByModelMapper$$f1b8f0f9 cannot be cast to project.entities.User
        at configs.AppConfig$1.configure(AppConfig.java:106) ~[na:na]
        at org.modelmapper.PropertyMap.configure(PropertyMap.java:383) ~[modelmapper-0.7.4.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_45]
        at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:195) ~[modelmapper-0.7.4.jar:na]
        ... 78 common frames omitted
@Configuration
public class AppConfig {
    @Bean
    public ModelMapper modelMapper() {
        ModelMapper modelMapper = new ModelMapper();

        // BEGIN: WITHOUT THE FOLLWOING CODE, it works fine
        PropertyMap<CreateUserFormDTO, User> userMap = new PropertyMap<CreateUserFormDTO, User>() {
            @Override
            public void configure() {
                map().setPassword(source.getPassword1());
            }
        };
        modelMapper.addMappings(userMap);
        // END


        return modelMapper;
    }
}

使用简单的Spring@autowire注入访问ModelMapper。User和CreateUserFormDTO类只是POJO。

会有什么问题?

共有1个答案

龙玺
2023-03-14

问题正是吉恩所说的。根据Spring-Dev工具:

使用spring-boot-devtools的应用程序在类路径上的文件发生更改时自动重新启动。在IDE中工作时,这可能是一个有用的特性,因为它为代码更改提供了一个非常快速的反馈循环。

当发生代码更改时,ModelMapper库已经由于base ClassLoader而加载到类路径中。根据Spring-Dev工具:

在spring-devtools.properties文件中添加这一行

restart.include.modelmapper=/modelmapper-.*.jar

清理和构建完整的项目。现在,每次发生文件更改时,modelmapper库都将重新加载。

链接:

    null
 类似资料:
  • Deal和DealDocument类是相同的。Deal document类如下所示: 你觉得问题可能是什么?它似乎是随机出现的,好像它工作正常,但在时间内系统退化 *更新*:这是我如何配置模型映射器的:ModelMapper.GetConfiguration().SetAmbiguity忽略(false).SetFieldMatchingEnabled(true).SetMatchingStrat

  • 问题内容: 我使用maven-eclipse创建了一个新的Spring MVC项目,并引发以下错误: (我尝试了stackoverflow的一些解决方案,但这些解决方案在我的情况下不起作用。pom.xml出现了一些我找不到的问题。我为servlet- api添加了提供的作用域,并尝试了它也不起作用。) 我的pom.xml如下: 我的web.xml如下: 问题答案: 更改 至 具有以下说明: 这很像

  • 问题内容: 您好,我的代码正在抛出。StackTrace显示: 即@ ps.setDate(6,(Date)affiliate.getDate()); 在DAO 以下是我的servlet: 以下是我的DAO: 以下是我的DTO: 请在这方面帮助我 问题答案: 由于文档说,将在参数的需要类型的Date对象。但是您似乎在课堂上使用了对象。 这就是为什么你得到了。 要解决此问题,您需要将类中的对象类型更

  • 问题内容: 在我的应用程序中,我需要将arraylist转换为数组的字符串。但是,我得到一个错误: 在与我在一起的错误: 这是完整的代码: 问题答案: 尝试 注意:我建议将listofurls重命名为arrayOfURLs

  • 我有一个与这里类似的问题,DispatcherServlet不能强制转换为Servlet,这是在使用Eclipse运行一个新的Spring MVC项目时发生的。然而,所有的答案都暗示了一个使用Maven的解决方案,而我没有使用Maven。 我为这个问题找了一天,但没有解决办法。

  • 我得到以上的错误,如果有人知道,然后告诉我。。。我将非常感激 Java: XML: