首页 > 解决方案 > Hybris - 从 java 类启动服务器

问题描述

为了实现一些自动化,我正在寻找一种通过 java 代码启动完整 hybris 服务器的方法。

到目前为止,我尝试的是使用这些命令的启动

1)

de.hybris.platform.core.Registry.setCurrentTenantByID("master");
de.hybris.platform.core.Registry.activateMasterTenant();

2)

 de.hybris.platform.core.Registry.startup()

两种方式我都实现了 hybris 服务器的启动,但我需要访问 localhost:9002 或 localhost:9001 但是当我这样启动服务器时它们不可用。这些端口上什么都没有:/

标签: localhosthybris

解决方案


您可以尝试以下想法:

  • 继续检查日志文件输出INFO: Server startup in 26438 ms,因为它是完全 hybris 启动后的最后一个日志条目。
  • 继续尝试使用 netstat 脚本或使用 java 套接字连接/敲击 9002/9001 端口。(连接成功意味着服务器已启动)
  • Hybris 中有一个名为 的事件AfterTenantRestartEvent,您可以创建一个脚本作业作为该事件的侦听器,然后在捕获该事件时触发您的代码。

公共类 MyAfterTenantStartupEventListener 扩展 AbstractEventListener {

private final List<AfterTenantRestartEvent> eventsRecorded = new ArrayList<AfterTenantRestartEvent>();

@Override
protected void onEvent(final AfterTenantRestartEvent event)
{
    doSomething();
}

编写 Groovy 脚本,并使用 impex 插入它。

INSERT_UPDATE Script;code[unique=true]  ;scriptType(code)   ;content
                    ;EventListenerScript    ;GROOVY             ;<EventListenerCode> 

然后使用这个 ImpEx 创建一个作业。

INSERT_UPDATE ScriptingJob  ;code[unique=true]      ;scriptURI
                            ;helloWorldScriptJob    ;model://helloWorldScript 

2.3. Cron Job 创建 CronJobModel 的实例并将脚本作业附加到它

INSERT_UPDATE CronJob   ;code[unique=true]          ;job(code)              ;sessionLanguage(isocode)   ;sessionUser(uid)
                        ;helloWorldScriptCronJob    ;helloWorldScriptJob    ;en                         ;admin 

更多信息:

https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/6.6.0.0/en-US/8c53e973866910149f7f95676060d3de.html?q=script%20listener

https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/6.6.0.0/en-US/07e3db4b90b24eb39522cb26ceb34544.html?q=script%20listener


推荐阅读