点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,我们正在datahub中实现一些自定义扩展。
我们可以更改扩展名的时间了。 但是当我们讨价还价时,由于在数据库中加载了扩展元数据,因此在启动过程中会出错,并且发现解决它们的唯一方法是使用参数datahub.autoInitMode = create-drop重新启动datahub。这解决了我们的问题,但这在 我们的生产系统。 有什么方法可以避免使用datahub.autoInitMode = create-drop解决我们的问题? 谢谢
当前数据中心具有以下选项。
如果您选择
,可能是您的问题得到了解决很可能您有一个扩展名,用于自定义saparticle扩展名。 扩展名的加载顺序不同,使用
override = true
的扩展名首先加载,而原始扩展名第二次加载,则出现此错误。 在对saparticle的主要扩展中声明依赖项。 请参阅在此处如何声明依赖项。 还要检查覆盖属性,以防万一。我们有 检查此解决方案(kernel.autoInitMode = update),它不起作用。
还有其他建议吗?
io,
如果您粘贴了要重新启动的异常示例,那么我会更确定该问题。 但是,我怀疑您可以忽略这些例外。
我以"忽略"模式重新启动了本地DataHub。 这是我看到的异常之一的示例:
通过这种方式,数据中心"警告"我扩展程序已加载数据库中已存在的属性(或项目类型)。 当然存在! 与我之前加载的扩展名完全相同。 但是,在DataHub从其他供应商处加载扩展名且这些扩展名中有重复的项目类型或属性名称的情况下,此警告可能非常重要,将指示事情可能无法按预期进行。 就我而言,当然没有问题,因为DataHub功能齐全,所以我可以忽略这些消息。 唯一需要担心的是,如果看到类似
ValidationException {failures = [ValidationFailure {FATAL,...}]}
最后的提示。 当您以create-drop模式重新启动时,数据库将被删除并重新创建。 这会清除元数据表中的所有数据,因此,在加载扩展时,不会发现重复项,也不会给出警告。
希望这会有所帮助。 如果没有,请粘贴重启时看到的异常。
非常感谢Slava。
我们尝试使用ignore选项,有时它可以正常运行,但有时会出错:
2018-03-08 12:13:15,476 [错误] [chdeliDefaultExtensionLoaderService]无法加载扩展saparticle com.hybris.datahub.validation.ValidationException:[ValidationFailure {FATAL,rawAttribute:"无法修改规范属性转换CanonicalVariantArticle, com.hybris.datahub.validation.AbstractValidator.validate(AbstractValidator.java:32)〜[datahub-service-6.5.0.4-RC2.jar:6.5.0.4-RC2]上的com.hybris.datahub.validation.AbstractValidator.validate(articleID,RawARTMAS"}]。 datahub.facade.metadata.DefaultTransformationItemClassFacade.createNewAttribute(DefaultTransformationItemClassFacade.java:42)〜[datahub-service-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub.facade.metadata.DefaultTransformationItemClassFacade.createNewAttribute (DefaultTransformationItemClassFacade.java:32)〜[datahub-service-6.5.0.4-RC2.jar:6.5.0.4-RC2]在com.hybris.datahub.facade.metadata.AbstractItemClassFacade.createAttribute(AbstractItemClassFacade.java:36)〜[ datahub-service-6.5.0.4-RC2.jar:6.5.0.4-RC2],位于sun.reflect.GeneratedM ethodAccessor229.invoke(未知来源)〜[na:na]在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_45]在java.lang.reflect.Method.invoke(Method.java :497)〜[na:1.8.0_45],位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.springframework.aop.framework.ReflectiveMethodInvocation中。 在org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocation(TransactionInterceptor.java:99)处进行[ReflectionMethodInvocation.java:157)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]〜[ spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE],位于org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)〜[spring-tx-4.3.3.RE LEASE.jar:4.3.3.RELEASE],位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)〜[spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE] org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:213)〜com.sun.proxy。$ Proxy178.createAttribute(Unknown Source)的[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]〜com的[na:na] .hybris.datahub.extension.load.impl.CanonicalModelLoader.loadAttributeTransformations(CanonicalModelLoader.java:104)〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub。 extension.load.impl.CanonicalModelLoader.createCanonicalAttribute(CanonicalModelLoader.java:90)〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2] at com.hybris.datahub.extension.load.impl .CanonicalModelLoader.lambda $ loadCanonicalItemType $ 0(CanonicalMode lLoader.java:59)〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2] at com.hybris.datahub.extension.load.impl.CanonicalModelLoader $$ Lambda $ 169/900212376.accept (未知来源)〜[na:na] at java.util.ArrayList.forEach(ArrayList.java:1249)〜[na:1.8.0_45] at com.hybris.datahub.extension.load.impl.CanonicalModelLoader.loadCanonicalItemType( CanonicalModelLoader.java:59)〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2] at com.hybris.datahub.extension.load.impl.CanonicalModelLoader $$ Lambda $ 168/1594293614.accept (未知来源)〜[na:na] at java.util.ArrayList.forEach(ArrayList.java:1249)〜[na:1.8.0_45] at com.hybris.datahub.extension.load.impl.CanonicalModelLoader.loadCanonicalItems( CanonicalModelLoader.java:46)〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub.extension.load.impl.DefaultExtensionImportService.loadExtension(DefaultExtensionImportService.java:44 )〜[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]在sun.reflect.GeneratedMethodAccessor 235.invoke(未知来源)〜[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java :497)〜[na:1.8.0_45],位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.springframework.aop.framework.ReflectiveMethodInvocation中。 在org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocation(TransactionInterceptor.java:99)处进行[ReflectionMethodInvocation.java:157)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]〜[ spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE],位于org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)〜[spring-tx-4.3.3.RELEASE.jar :4.3 .3.RELEASE]在org.springframework.aop上的org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)〜[spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE] .framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java: 213)〜[spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]在com.sun.proxy。$ Proxy182.loadExtension(未知源)〜[na:na]在com.hybris.datahub。 extension.load.impl.DefaultExtensionLoaderService.loadExtension(DefaultExtensionLoaderService.java:86)[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub.extension.load.impl。 DefaultExtensionLoaderService $$ Lambda $ 167/1850428445.accept(未知来源)[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2] at java.util.Iterator.forEachRemaining(Iterator.java:116)[ na:1.8.0_45],位于java.util.Spliterators $ IteratorSpliterator.forE com.hybris.datahub.extension上的java.util.stream.ReferencePipeline $ Head.forEachOrdered(ReferencePipeline.java:590)上的achRemaining(Spliterators.java:1801)[na:1.8.0_45] [na:1.8.0_45]。 load.impl.DefaultExtensionLoaderService.loadExtensionsInOrder(DefaultExtensionLoaderService.java:78)[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub.extension.load.impl.DefaultExtensionLoaderService。 loadExtensions(DefaultExtensionLoaderService.java:71)[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2]位于com.hybris.datahub.extension.load.impl.DefaultExtensionLoaderService.loadExtensionsFromClasspath(DefaultExtensionLoaderService.java: 44)com.hybris.datahub.spring.ContextRefreshedEventListener.onApplicationEvent(ContextRefreshedEventListener.java:43)上的[datahub-extension-loader-6.5.0.4-RC2.jar:6.5.0.4-RC2] .hybris.datahub.spring.ContextRefreshedEventListener.onApplicationEvent(ContextRefreshedEventListener.java:25)[classes/:na]在org.springframework.c ontext.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java: 138)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:382)[spring-context-4.3.3.RELEASE .org:4.3.3.RELEASE],位于组织org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:336)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]。 springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:877)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext。 java:544)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.spr org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader)上的ingframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE] java:326)[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)[spring-web-4.3.3 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118)的[RELEASE.jar:4.3.3.RELEASE] [org.apache.catalina.core.StandardContext的[catalina.jar:7.0.72]。 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)上的startInternal(StandardContext.java:5634)[catalina.jar:7.0.72]在org.apache上的[catalina.jar:7.0.72]。 catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)[catalina.jar:7.0.72] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)[catalina.jar:7.0.72 ]在org.apache.catalina.core.StandardHost.add org.apache上的Child(StandardHost.java:652)[catalina.jar:7.0.72]在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:679)[catalina.jar:7.0.72]在org.apache。 catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1966)[catalina.jar:7.0.72] at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)[na:1.8.0_45 ] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[na:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)在Java.lang.Thread.run(Thread.java:745)[na:1.8.0_45] [na:1.8.0_45]
例如,当我们添加一些扩展saparticle的自定义扩展名,然后我们决定删除这些扩展名并破坏datahub时,就会发生这种情况。 或者,当我们对自定义扩展进行修改并部署它时。
使用create-drop选项,我没有任何问题,但是忽略它不起作用。
还有其他建议吗?
谢谢
一周热门 更多>