Hybris 启动错误

zdh*_*him 5 hybris

我已将 hybris 服务器从 mac 复制到 windows 机器。在 Mac 中,hybris 实例运行良好,但在 Windows 中出现一些错误,因此无法看到 hybris 登录页面。下面是堆栈跟踪。

ERROR [localhost-startStop-3] [ContextLoader] Context initialization failed
java.lang.NullPointerException: null
        at java.net.URI$Parser.parse(URI.java:3042) ~[?:1.8.0_201]
        at java.net.URI.<init>(URI.java:588) ~[?:1.8.0_201]
        at java.net.URI.create(URI.java:850) ~[?:1.8.0_201]
        at com.hybris.backoffice.BackofficeModulesManager.lambda$8(BackofficeModulesManager.java:533) ~[classes/:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_201]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_201]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_201]
        at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[?:1.8.0_201]
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[?:1.8.0_201]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_201]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_201]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_201]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_201]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_201]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_201]
        at com.hybris.backoffice.BackofficeModulesManager.assureCorrectExistingModulesStructure(BackofficeModulesManager.java:532) ~[classes/:?]
        at com.hybris.backoffice.BackofficeApplicationContext.prepareRefresh(BackofficeApplicationContext.java:96) ~[classes/:?]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:512) ~[spring-context-4.3.17.RELEASE.jar:4.3.17.RELEASE]
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) ~[spring-web-4.3.17.RELEASE.jar:4.3.17.RELEASE]
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) [spring-web-4.3.17.RELEASE.jar:4.3.17.RELEASE]                      at de.hybris.platform.spring.HybrisContextLoaderListener.doInitWebApplicationContext(HybrisContextLoaderListener.java:225) [coreserver.jar:?]
        at de.hybris.platform.spring.HybrisContextLoaderListener.initWebApplicationContext(HybrisContextLoaderListener.java:199) [coreserver.jar:?]                            at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [spring-web-4.3.17.RELEASE.jar:4.3.17.RELEASE]
        at de.hybris.platform.spring.HybrisContextLoaderListener.contextInitialized(HybrisContextLoaderListener.java:95) [coreserver.jar:?]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792) [catalina.jar:8.5.32]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256) [catalina.jar:8.5.32]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421) [catalina.jar:8.5.32]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411) [catalina.jar:8.5.32]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
ERROR [localhost-startStop-3] [ContextLoader] Context initi
Run Code Online (Sandbox Code Playgroud)

最后,出现服务器启动初始化消息。

    Jul 03, 2019 11:30:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-9001"]
Jul 03, 2019 11:30:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["https-jsse-nio-9002"]
Jul 03, 2019 11:30:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Jul 03, 2019 11:30:18 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 169082 ms
Run Code Online (Sandbox Code Playgroud)

Jog*_*ger 6

@zdhim 您收到此错误是因为 BackofficeModulesManager 无法从给定路径加载相关的 Backoffice 扩展。依赖的扩展路径在文件 library.info (at /HYBRIS_HOME/data/backoffice/widgetlib)中维护。当您将 Hybris 文件从 Mac 复制到 Windows 时,您也会复制这个仍然具有 Mac 路径的文件。

虽然每次启动服务器时 Hybris 本身都会更新此文件中的扩展路径,但由于服务器启动失败,因此无法这样做。

您可以手动更正 library.info 中的路径,它应该可以工作。来自 BackofficeModulesManager 的用于查找 library.info 的该函数 ensureCorrectExistingModulesStructure() 现在已被 Hybris 内部弃用。

希望这可以帮助遇到类似问题的人。