localhost - 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 但是当我这样启动服务器时它们不可用。这些端口上什么都没有:/
解决方案
您可以尝试以下想法:
- 继续检查日志文件输出
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
更多信息: