Foren

StorageFieldRequiredException pendant import de lar

thumbnail
Yanis BOULAOUINAT, geändert vor 7 Jahren.

StorageFieldRequiredException pendant import de lar

New Member Beiträge: 10 Beitrittsdatum: 06.05.14 Neueste Beiträge
Bonjour,

J'essaye actuellement d'importer des pages depuis un lar sur un environnement de recette et lors de l'import du lar j'obtiens l'exception StorageFieldRequiredException.
Le problème ne vient pas du lar en question car il s'importe correctement sur mon environnement de fabrication.
En debugant, je me suis rendu compte qu'un champs requis de la DDMStructure était null, pourtant le web content qui utilise cette structure renseigne bien le champ incriminé.
Même en supprimant ce web content de mon lar il plante sur d'autres champs requis de DDMStructure qui sont eux aussi bien renseignés dans les webcontents.
La seule différence entre mes 2 environnements est que la recette a des données de production plus récente, mais néanmoins aucunes modifs sur les structures ou modèles de documents ne sont visibles en base.
Je me demande donc si cela ne peut pas venir d'une configuration du portail (J'ai vérifié les paramètres de langue qui sont identiques en recette et fabrication)

Merci par avance pour votre aide.

PI la stacktrace :

17:04:54,574 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.dynamicdatamapping.model.DDMTemplate/28347.xml
17:04:54,577 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.dynamicdatamapping.model.DDMTemplate/28347-expando.xml
17:04:54,585 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.journal.model.JournalArticle/4239464/_Images_0_fr_FR
17:04:54,586 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.journal.model.JournalArticle/4239464/_Images_1_fr_FR
17:04:54,586 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.journal.model.JournalArticle/4239464/_Images_2_fr_FR
17:04:54,587 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.journal.model.JournalArticle/4239464/_Images_3_fr_FR
17:04:54,588 INFO [liferay/background_task-1][PortletDataContextListenerImpl:42] Import /group/10184/com.liferay.portlet.journal.model.JournalArticle/4239464-expando.xml
17:04:54,634 ERROR [liferay/background_task-1][BackgroundTaskMessageListener:133] Unable to execute background task
com.liferay.portal.kernel.lar.PortletDataException: com.liferay.portlet.dynamicdatamapping.StorageFieldRequiredException
at com.liferay.portal.kernel.lar.BaseStagedModelDataHandler.importStagedModel(BaseStagedModelDataHandler.java:177)
at com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil.importStagedModel(StagedModelDataHandlerUtil.java:340)
at com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil.importReferenceStagedModels(StagedModelDataHandlerUtil.java:301)
at com.liferay.portlet.journal.lar.JournalContentPortletDataHandler.doProcessImportPortletPreferences(JournalContentPortletDataHandler.java:243)
at com.liferay.portal.kernel.lar.BasePortletDataHandler.processImportPortletPreferences(BasePortletDataHandler.java:592)
at com.liferay.portal.lar.PortletImporter.importPortletPreferences(PortletImporter.java:1150)
at com.liferay.portal.lar.LayoutImporter.doImportLayouts(LayoutImporter.java:778)
at com.liferay.portal.lar.LayoutImporter.importLayouts(LayoutImporter.java:249)
at com.liferay.portal.service.impl.LayoutLocalServiceImpl.importLayouts(LayoutLocalServiceImpl.java:1763)
at com.liferay.portal.service.impl.LayoutLocalServiceImpl.importLayouts(LayoutLocalServiceImpl.java:1812)
at sun.reflect.GeneratedMethodAccessor2171.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy454.importLayouts(Unknown Source)
at com.liferay.portal.service.LayoutLocalServiceWrapper.importLayouts(LayoutLocalServiceWrapper.java:1358)
at com.apicil.digital.common.hook.DigitalLayoutLocalService.importLayouts(DigitalLayoutLocalService.java:54)
at sun.reflect.GeneratedMethodAccessor2171.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy455.importLayouts(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.service.impl.LayoutLocalServiceVirtualLayoutsAdvice.invoke(LayoutLocalServiceVirtualLayoutsAdvice.java:183)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.invoke(LayoutLocalServiceStagingAdvice.java:141)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.sun.proxy.$Proxy36.importLayouts(Unknown Source)
at com.liferay.portal.service.LayoutLocalServiceUtil.importLayouts(LayoutLocalServiceUtil.java:1308)
at com.liferay.portal.lar.backgroundtask.LayoutImportBackgroundTaskExecutor.execute(LayoutImportBackgroundTaskExecutor.java:61)
at com.liferay.portal.kernel.backgroundtask.SerialBackgroundTaskExecutor.execute(SerialBackgroundTaskExecutor.java:56)
at com.liferay.portal.backgroundtask.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:108)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:72)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:71)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:682)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:593)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.liferay.portlet.dynamicdatamapping.StorageFieldRequiredException
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validateDDMStructureFields(JournalArticleLocalServiceImpl.java:6992)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validateDDMStructureFields(JournalArticleLocalServiceImpl.java:7014)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:6848)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.validate(JournalArticleLocalServiceImpl.java:6944)
at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.addArticle(JournalArticleLocalServiceImpl.java:332)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.sun.proxy.$Proxy222.addArticle(Unknown Source)
at com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil.addArticle(JournalArticleLocalServiceUtil.java:439)
at com.liferay.portlet.journal.lar.JournalArticleStagedModelDataHandler.doImportStagedModel(JournalArticleStagedModelDataHandler.java:636)
at com.liferay.portlet.journal.lar.JournalArticleStagedModelDataHandler.doImportStagedModel(JournalArticleStagedModelDataHandler.java:1)
at com.liferay.portal.kernel.lar.BaseStagedModelDataHandler.importStagedModel(BaseStagedModelDataHandler.java:166)
... 45 more
thumbnail
Yanis BOULAOUINAT, geändert vor 7 Jahren.

RE: StorageFieldRequiredException pendant import de lar (Antwort)

New Member Beiträge: 10 Beitrittsdatum: 06.05.14 Neueste Beiträge
Pour information, j'ai résolu le problème en rajoutant les propriétés suivantes dans mon portal-ext.properties :
locales=fr_FR
user.country=FR
user.language=fr
locale.default.request=true

En effet mes web contents avait des valeurs en FR_fr, mais le default locale était mis en US_us. La valeur du champs remontée était donc null car non renseigné en US_us, et donc jetait une exception lorsque que le champs était requis.