键的配置值:url.signed.validFor无法从Integer类分配

2020-08-20 11:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)指定属性 media.globa...

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

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


指定属性 media.globalSettings.s3MediaStorageStrategy.url.signed.validFor = 3600 时,访问媒体对象时会导致以下错误/堆栈跟踪:

 信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 |  java.lang.IllegalStateException:键的配置值:url.signed.validFor无法从Integer类分配
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.media.storage.impl.DefaultMediaFolderConfig.getParameter(DefaultMediaFolderConfig.java:109)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.media.storage.impl.DefaultMediaFolderConfig.getParameter(DefaultMediaFolderConfig.java:119)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.amazon.media.url.S3MediaURLStrategy.getTimeToLiveForUrl(S3MediaURLStrategy.java:122)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.amazon.media.url.S3MediaURLStrategy.getUrlForMedia(S3MediaURLStrategy.java:98)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.jalo.media.MediaManager.getURLForMedia(MediaManager.java:540)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.servicelayer.media.impl.DefaultMediaService.getUrlForMedia(DefaultMediaService.java:647)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.servicelayer.media.DynamicAttributesMediaUrl.get(DynamicAttributesMediaUrl.java:26)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.servicelayer.media.DynamicAttributesMediaUrl.get(DynamicAttributesMediaUrl.java:1)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.servicelayer.internal.model.attribute.impl.DefaultDynamicAttributesProvider.get(DefaultDynamicAttributesProvider.java:46)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.servicelayer.model.ItemModelContextImpl.getDynamicValue(ItemModelContextImpl.java:345)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在de.hybris.platform.core.model.media.MediaModel.getURL(MediaModel.java:361)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  信息|  jvm 1 | 主|  2017/06/30 12:46:06.371 | 在java.lang.reflect.Method.invoke(Method.java:498)

  

由于以下代码而失败:

  public  T getParameter(字符串键,Class  requiredType){
          对象值= this.settings.get(key);
          if(value!= null &&!requiredType.isAssignableFrom(value.getClass())){
              抛出新的IllegalStateException("键的配置值:" + key +"不能从" + requiredType.getSimpleName()+" class"分配);
          }其他{
              返回值!= null?value:null;
          }
      }

  

Hybris将local.properties文件中的配置值视为String,因此抛出IllegalStateException。 是否有人遇到此问题,除了覆盖此代码外,还找到了解决方法?

预先感谢

Yannick

3条回答
宇峰Kouji
2020-08-20 11:32

嗨,Yannick,

我们使用Hybris 5.4,可能的解决方法是使用默认值(10分钟)。 在S3MediaURLStrategy中,您可以找到所用的DEFAULT_TIME_TO_LIVE。

注释您的行media.globalSettings.s3MediaStorageStrategy.url.signed.validFor = 3600

和(如果使用的话)media.folder.yourMediaFolder.url.signed.validFor = 5

或者,如果需要,您可以实施自定义策略。

一周热门 更多>