找不到媒体例外,仅在生产环境中

2020-08-20 17:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)要求是客户上传pdf并提交,hy...

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

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


要求是客户上传pdf并提交,hybris会将pdf附加到电子邮件中,然后将其发送到指定的电子邮件地址。

尝试从modelservice调用getStreamFromMedia时发生此异常

它可以在本地,开发和质量环境中正常工作,但不能在producton环境中工作。

质量环境是与生产环境相同的群集环境,但是此流程在质量中正常工作

奇怪的是,它在生产中偶尔会正常工作,这意味着它可以从媒体模型中可用的位置选择pdf,但大多数情况下找不到文件,并且找不到媒体异常

我什至无法调试问题,因为在任何环境下都不会发生。 请帮忙。

文件存在于找不到的位置。

错误日志

de.hybris.platform.servicelayer.media.NoDataAvailableException:de.hybris.platform.media.exceptions.MediaNotFoundException:在de.hybris.platform上找不到媒体(请求的媒体位置:ha8/he2/8903867891742.pdf)。 位于com.core.register.email.UploadPdfEmailWithAttachmentAction.executeAction(UploadPdfEmailWithAttachmentAction.java:102)处的servicelayer.media.impl.DefaultMediaService.getStreamFromMedia(DefaultMediaService.java:274)在de.hybris.platform.processengine.action.AbstractSimpleDecisionAction.execute 位于de.hybris.platform.processengine.definition.ActionNode.execute(ActionNode.java:154)位于de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 3(ProcessengineTaskRunner.java:169)位于的AbstractSimpleDecisionAction.java:50) de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 8(ProcessengineTaskRunner.java:562)在de.hybris.platform.processengine.process.ProcessengineTaskRunner.runProcessTask(ProcessengineTaskRunner.java:171)在de.hybris.platform.p rocessengine.process.ProcessengineTaskRunner.lambda $ 2(ProcessengineTaskRunner.java:112)位于de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 9(ProcessengineTaskRunner.java:535)位于org.springframework.transaction.support.TransactionTemplate.execute( 位于de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda的TransactionTemplate.java:133),位于de.hybris.platform.processengine.process.ProcessengineTaskRunner.runProcessTaskInTransaction(ProcessengineTaskRunner.java:112)的$ 7(ProcessengineTaskRunner.java:532) de.hybris.platform.processengine.process.ProcessengineProcessRunner.lambda $ 1(ProcessengineTaskRunner.java:102)上的de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 1(de.hybris.platform处的de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 6(ProcessengineTaskRunner.java:503) 在de.hybris.platform.processengine.process.ProcessengineTaskRunner.lambda $ 0(ProcessengineTaskRunner.java:90)处的processengine.process.ProcessengineTaskRunner.doRun(ProcessengineTaskRunner.java:102)在de.hybris.platfo rm.processengine.process.ProcessengineTaskRunner.lambda $ 5(ProcessengineTaskRunner.java:467)在de.hybris.platform.processengine.process.ProcessengineTaskRunner.run(ProcessengineTaskRunner.java:90)在de.hybris.platform.processengine.process.ProcessengineTaskRunner .run(ProcessengineTaskRunner.java:1)位于de.hybris.platform.processengine.task.impl.ProcessengineTaskExecutionStrategy.run(ProcessengineTaskExecutionStrategy.java:30)位于de.hybris.platform.task.impl.DefaultTaskService.processTask(DefaultTaskService.java :1612),位于de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1516),位于de.hybris.platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1485),位于de.hybris。 platform.task.impl.DefaultTaskService $ 5.run(DefaultTaskService.java:1363)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java :624)在java.lang.Thread.run(Thread.java:74 8)在de.hybris.platform.core.threadregistry.RegistrableThread.internalRun(RegistrableThread.java:145)处在de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:135)在由:de.hybris .platform.media.exceptions.MediaNotFoundException:在de.hybris.platform.media.storage.impl.LocalFileMediaStorageStrategy.getAsStream(LocalFileMediaStorageStrategy.java:224)处找不到媒体(请求的媒体位置:ha8/he2/8903867891742.pdf) .hybris.platform.jalo.media.MediaManager $ 1.getStream(MediaManager.java:154)位于de.hybris.platform.jalo.media.MediaManager.getMediaAsStream(MediaManager.java:370)位于de.hybris.platform.jalo media.MediaManager.getMediaAsStream(MediaManager.java:386)位于de.hybris.platform.servicelayer.media.impl.DefaultMediaService.getStreamFromMedia(DefaultMediaService.java:270)... 28个更多原因:java.io.FileNotFoundException:/ opt/hybris/persistent/data/media/sys_master/ha8/he2/8903867891742.pdf(无此类文件或目录),位于java.io.FileInput 位于de.hybris.platform.media.storage的java.io.FileInputStream。(FileInputStream.java:138)处的java.io.FileInputStream.open(FileInputStream.java:195)处的Stream.open0(本机方法)。 impl.LocalFileMediaStorageStrategy.getAsStream(LocalFileMediaStorageStrategy.java:220)...还有32个

1条回答
compass1988
2020-08-20 17:58

此问题已由我自己解决。

由于它是集群环境,因此将创建的媒体从一个节点复制到另一个节点需要花费时间,所以我只是将电子邮件处理延迟了5分钟。

一周热门 更多>