点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
这是我无法解决的从6.3-> 6.7移植项目的唯一错误。 这出现在迁移6.6-> 6.7
的最后一步如果我不为后台办公室重新编制索引,那么在启动Hybris之后,在控制台中会出现很多异常:
[java] [m de.hybris.platform.solrfacetsearch.solr.exceptions.SolrIndexNotFoundException:de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException:找不到活动索引:{indexedType = SolrIndexedTypeModel(8796093057183 @ 2),active = true,facetSearchConfig = SolrFacetSearchConfigModel(8796093057176 @ 1)}
[java] de.hybris.platform.solrfacetsearch.solr.impl.DefaultSolrIndexService.getActiveIndex(DefaultSolrIndexService.java:218)〜[solrfacetsearchserver.jar :?]
[java] com.hybris.backoffice.solrsearch.indexer.cron.BackofficeSolrIndexerDeleteJob.synchronizeIndexForType(BackofficeSolrIndexerDeleteJob.java:65)〜[backofficesolrsearchserver.jar :?]
[java] com.hybris.backoffice.solrsearch.indexer.cron.AbstractBackofficeSolrIndexerJob.synchronizeIndexForConfig(AbstractBackofficeSolrIndexerJob.java:110)〜[backofficesolrsearchserver.jar :?]
[java] com.hybris.backoffice.solrsearch.indexer.cron.AbstractBackofficeSolrIndexerJob.synchronizeIndexAndRemoveModifiedItems(AbstractBackofficeSolrIndexerJob.java:78)[backofficesolrsearchserver.jar :?]
[java] com.hybris.backoffice.solrsearch.indexer.cron.AbstractBackofficeSolrIndexerJob.performIndexingJob(AbstractBackofficeSolrIndexerJob.java:56)[backofficesolrsearchserver.jar :?]
[java]位于de.hybris.platform.solrfacetsearch.indexer.cron.AbstractIndexerJob.perform(AbstractIndexerJob.java:40)[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.servicelayer.internal.jalo.ServicelayerJob.performCronJob(ServicelayerJob.java:38)[processingserver.jar :?]
[java]位于de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1390)[processingserver.jar :?]
[java]位于de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:814)[processingserver.jar :?]
[java]位于de.hybris.platform.cronjob.jalo.Job.access $ 1(Job.java:767)[processingserver.jar :?]
[java]位于de.hybris.platform.cronjob.jalo.Job $ JobRunable.run(Job.java:686)[processingserver.jar :?]
[java] de.hybris.platform.util.threadpool.PoolableThread.internalRun(PoolableThread.java:208)[coreserver.jar :?]
[java]位于de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:134)[coreserver.jar :?]
[java]原因:de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException:找不到活动索引:{indexedType = SolrIndexedTypeModel(8796093057183 @ 2),active = true,facetSearchConfig = SolrFacetSearchConfigConfigModel(8796093057176 @ 1)}
[java]位于de.hybris.platform.servicelayer.util.ServicesUtil.validateSingleResultWithType(ServicesUtil.java:88)〜[coreserver.jar :?]
[java]位于de.hybris.platform.servicelayer.util.ServicesUtil.validateIfSingleResult(ServicesUtil.java:47)〜[coreserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.daos.impl.DefaultSolrIndexDao.findActiveIndexByConfigAndType(DefaultSolrIndexDao.java:73)〜[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.solr.impl.DefaultSolrIndexService.getActiveIndex(DefaultSolrIndexService.java:214)〜[solrfacetsearchserver.jar :?]
[java] ...另外12个
所以我们有一些代码可以为产品和内容目录索引重新编制索引,因此我决定扩展代码以也为后台重新编制索引:
公共类MyInitialDataSystemSetup扩展了AbstractSystemSetup {
....
私有静态最终List SOLR_INDEXES = Lists.newArrayList(" Backoffice的Solr Config",.....);
.....
对于(String solrIndex:SOLR_INDEXES){
executeSolrIndexerCronJob(solrIndex,true);
}
}
}
这对所有索引都适用,后台办公室除外。 名称为" Backoffice的Solr Config"必须正确,因为它适用于其他索引,并且它们在表SolrFacetSearchConfig中显示相同的名称
$ backofficeSFCName = Backoffice的Solr配置;
INSERT_UPDATE SolrFacetSearchConfig; 名称[unique = true]; 描述; $ document; $ solrSearchConfig; 货币(isocode); 语言(isocode); $ solrValueRangeSets; $ solrIndexedTypes; $ solrServerConfig; $ solrIndexConfig; indexNamePrefix
; $ backofficeSFCName; $ backofficeSFCName; ; BSFC; EUR,USD; de,en; backofficePriceRanges; BackofficeProduct; 默认; indexConfig-Backoffice; 后台
但是仅对于后台索引,我会发生此崩溃:
[java] [m [1; 31mERROR [solr索引器线程]] [DefaultIndexerWorker] [Indexer worker 0(对Backoffice/Product_backoffice_product的Solr Config进行完全索引操作)]由于失败而无法处理索引项 索引到具有PK 8796093054977的项目:无法通过解析器:backofficeValueResolver解析具有PK:8796093054977的项目的值,对于属性:[_backofficeLabel,名称],原因:null
[java] [m de.hybris.platform.solrfacetsearch.indexer.exceptions.IndexerException:无法使用PK 8796093054977索引项目:无法通过解析器:backofficeValueResolver来解析PK:8796093054977的项目的值,用于属性:[__backofficeLabel, 名称],原因:空
[java] de.hybris.platform.solrfacetsearch.indexer.impl.DefaultIndexer.handleError(DefaultIndexer.java:263)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultIndexer.indexItems(DefaultIndexer.java:124)〜[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.indexer.strategies.impl.DefaultIndexerBatchStrategy.executeIndexerOperation(DefaultIndexerBatchStrategy.java:253)〜[solrfacetsearchserver.jar :?]
[java]位于de.hybris.platform.solrfacetsearch.indexer.strategies.impl.DefaultIndexerBatchStrategy.execute(DefaultIndexerBatchStrategy.java:218)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.workers.impl.DefaultIndexerWorker.doRun(DefaultIndexerWorker.java:202)[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.workers.impl.DefaultIndexerWorker.run(DefaultIndexerWorker.java:158)[solrfacetsearchserver.jar :?]
[java] at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)[?:1.8.0_172]
[java] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[?:1.8.0_172]
[java] at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)[?:1.8.0_172]
[java] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[?:1.8.0_172]
[java] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[?:1.8.0_172]
[java] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[?:1.8.0_172]
[java] at java.lang.Thread.run(Thread.java:748)[?:1.8.0_172]
[java]原因:de.hybris.platform.solrfacetsearch.config.exceptions.FieldValueProviderException:无法通过解析器:backofficeValueResolver解析具有PK:8796093054977的项的值,对于属性:[_backofficeLabel,名称],原因:null
[java] de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.handleError(DefaultSolrDocumentFactory.java:523)〜[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.addIndexedPropertyFieldsForNewApi(DefaultSolrDocumentFactory.java:356)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.addIndexedPropertyFields(DefaultSolrDocumentFactory.java:298)〜[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.createInputDocument(DefaultSolrDocumentFactory.java:191)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultIndexer.indexItems(DefaultIndexer.java:118)〜[solrfacetsearchserver.jar :?]
[java] ...另外11个
[java]原因:java.lang.NullPointerException
[java] com.hybris.backoffice.solrsearch.resolvers.BackofficeValueResolver.addBackofficeSpecificFields(BackofficeValueResolver.java:64)〜[backofficesolrsearchserver.jar :?]
[java] com.hybris.backoffice.solrsearch.resolvers.BackofficeValueResolver.addFieldValues(BackofficeValueResolver.java:53)〜[backofficesolrsearchserver.jar :?]
[java]位于de.hybris.platform.solrfacetsearch.provider.impl.AbstractValueResolver.resolve(AbstractValueResolver.java:132)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.addIndexedPropertyFieldsForNewApi(DefaultSolrDocumentFactory.java:344)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.addIndexedPropertyFields(DefaultSolrDocumentFactory.java:298)〜[solrfacetsearchserver.jar :?]
[java] de.hybris.platform.solrfacetsearch.indexer.impl.DefaultSolrDocumentFactory.createInputDocument(DefaultSolrDocumentFactory.java:191)〜[solrfacetsearchserver.jar :?]
[java] at de.hybris.platform.solrfacetsearch.indexer.impl.DefaultIndexer.indexItems(DefaultIndexer.java:118)〜[solrfacetsearchserver.jar :?]
[java] ...另外11个
[java] [1; 31mERROR [solr索引器线程] [DefaultIndexerWorker] [Indexer worker 0(在Backrice/Product_backoffice_product的Solr Config上进行完全索引操作)]由于无法用PK 8796093054977建立索引项而无法处理索引项: 对于属性:[_ backofficeLabel,名称],通过解析器:backofficeValueResolver解析具有PK的项目的值:87960930054977,原因:null
该异常在backofficesolrsearchserver.jar////BackofficeValueResolver第64行:
String objectLabel = this.getLabelServiceProxy()。getObjectLabel(model,language);
我无法调试错误,因为奇怪的是,当我在HAC中尝试并执行"初始化"时,没有异常,并且一切正常! 它是在命令行的"蚂蚁初始化"或"蚂蚁更新系统"期间复制的。
但是我想这一定是getLabelServiceProxy()返回null的原因。 这应该由所需的设置器添加。 这是bean的定义:
<!-labelService代理由labelServiceProxyExtender设置->
.......
........
因此,所有bean都在backofficesolrsearch-spring.xml,backofficesolrsearch-backoffice-spring.xml和backoffice-web-spring.xml中定义
我想缺少backoffice-web-spring.xml,但是如何确保添加了它??
感谢您的帮助!!!
嗨,您找到了解决方案吗?
有任何解决方案吗?
嗨托斯顿,
很抱歉收到您的回复,现在才看到。 我们通过卷曲调用管理节点上的BO来解决此问题,这是我们自动部署过程的最后步骤之一。 Bean是在Web模块XML(延迟加载)中定义的。 我们的curl调用会强制Web模块加载(以及Web-spring配置,其中定义了缺少的bean)。 在我们的例子中,作业似乎在admin节点上运行,但是我们有一个单独的BO节点,因此当作业在admin节点上运行时,因为从未在该节点上加载Web模块,因此缺少该Bean 所以我们解决了这个问题。
希望您一切都好。 :-)
干杯
Eoin。
嗨,Eoin,
同时有什么解决办法吗?
很高兴在这里见到你:)
先生。 T
一周热门 更多>