关于6.0中的视图处理程序

2020-08-14 00:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在将项目从Hybris 5....

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在将项目从Hybris 5.7迁移到6.0。 服务器运行时,它会给出一些关于beforViewhandler的错误。 我无法解决。 错误的stackTrace将像这样

org.springframework.beans.factory。 BeanCreationException :创建名称为" org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0"的bean时出错:bean的初始化失败; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为" org.springframework.web.servlet.handler.MappedInterceptor#2"的bean时出错:在设置构造函数参数时无法解析对bean" beforeViewHandlerInterceptor"的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/config/spring-mvc-config.xml]中定义的名称为'defaultBeforeViewHandlerInterceptor'的bean创建时出错:

由以下原因导致: org.springframework.beans.factory.BeanCreationException::在ServletContext资源[/WEB-INF/config/spring-mvc-config.xml中定义的名称为'defaultBeforeViewHandlerInterceptor'的bean创建时出错 ]:初始化bean失败; 嵌套的异常是org.springframework.beans.ConversionNotSupportedException:无法将类型" java.util.ArrayList"的属性值转换为属性" beforeViewHandlers"的必需类型" java.util.List"; 嵌套异常是java.lang.IllegalStateException:无法转换实现de.hybris.platform.acceleratorstorefrontcommons.interceptors.BeforeViewHandler,org.springframework.aop.SpringProxy,org.springframework.aop的[com.sun.proxy。$ Proxy111类型的值。 建议为属性" beforeViewHandlers [10]"使用必需的类型[au.com.pillowtalk.storefront.interceptors.BeforeViewHandler]:找不到匹配的编辑器或转换策略 jvm 1 | 主| 2016/08/01 17:10:48.292 | 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.292 | 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.294 | 在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:303)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.294 | 在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.295 | 在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.295 | 在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.295 | 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.296 | 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.296 | 在org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:634)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.300 |

原因: org.springframework.beans.ConversionNotSupportedException :无法将类型" java.util.ArrayList "的属性值转换为必需的类型" java" .util.List ",用于属性" beforeViewHandlers"; 嵌套异常是java.lang.IllegalStateException:无法转换实现de.hybris.platform.acceleratorstorefrontcommons.interceptors.BeforeViewHandler,org.springframework.aop.SpringProxy,org.springframework.aop的[com.sun.proxy。$ Proxy111类型的值。 建议为属性" beforeViewHandlers [10]"使用必需的类型[au.com.pillowtalk.storefront.interceptors.BeforeViewHandler]:找不到匹配的编辑器或转换策略 jvm 1 | 主| 2016/08/01 17:10:48.314 | 在org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:476)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.314 | 在org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:512)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.315 | 在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:303)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.330 | 在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)〜[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]信息| jvm 1 | 主| 2016/08/01 17:10:48.331 |

谁能帮助我。.

2条回答
樱桃小丸子0093
2020-08-14 01:21

当我尝试从5.7迁移到6.0时遇到了相同的问题。 此问题的原因是addonsupport扩展(对于b2c加速器为addonsupport-b2c-web-spring.xml)的web-spring.xml文件中的Bean的属性更改。 在Hybris 5.7中,beforeViewHandlerAdapter bean具有一个名为proxyInterfaceName的属性,该属性的值为 $ {b2cstorefront.package} .interceptors.BeforeViewHandler 。 此处,b2cstorefront.package是在店面扩展的project.properties文件(在您的情况下为au.com.pillowtalk.storefront)中定义的。 因此,期望在Hybris 5.7的店面包中编写自己的BeforeViewHandler接口。 但是,此方法在Hybris 6.0中发生了变化。

在Hybris 6.0中,beforeViewHandlerAdapter bean的属性proxyInterfaceName具有值 de.hybris.platform.acceleratorstorefrontcommons.interceptors.BeforeViewHandler ,这意味着BeforeViewHandler类已经包含在acceleratorstorefrontcommons扩展内。 因此,它与店面中的BeforeViewHandler接口冲突。

我通过从店面删除BeforeViewHandler.java文件并在实现BeforeViewHandler接口的类和BeforeViewHandlerInterceptor类中添加import de.hybris.platform.acceleratorstorefrontcommons.interceptors.BeforeViewHandler行来解决了该问题。

上面的过程对于BeforeControllerHandler类是有效的,因为在ControllerHandlerAdapter bean之前应用了相同的更改。

最诚挚的问候,

一周热门 更多>