为了实现某种自动化,我正在寻找一种通过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,但是当我这样启动服务器时它们不可用。这些端口上没有任何东西:/
答案 0 :(得分:0)
考虑从Java程序中如下执行您的hybris服务器外壳脚本:
Mac OS
Process process = Runtime.getRuntime().exec("./hybrisserver.sh", null, new File("<PATH_TO_PLATFORM>"));
process.waitFor();
我刚刚在Mac OS上对其进行了测试,并成功启动了Hybris,并且可以通过浏览器访问它。祝你好运!
用于WINDOWS (尚未测试)
Process process = Runtime.getRuntime().exec("cmd /c hybrisserver.bat, null, new File("<PATH_TO_PLATFORM>"));
process.waitFor();
答案 1 :(得分:0)
您可以尝试以下想法:
INFO: Server startup in 26438 ms
,因为它是完整hybris启动后的最后一个日志条目。AfterTenantRestartEvent
的事件,您可以创建一个脚本作业作为该事件的侦听器,然后在捕获到该事件时触发您的代码。公共类MyAfterTenantStartupEventListener扩展了AbstractEventListener {
private final List<AfterTenantRestartEvent> eventsRecorded = new ArrayList<AfterTenantRestartEvent>();
@Override
protected void onEvent(final AfterTenantRestartEvent event)
{
doSomething();
}
脚本Groovy,并使用即插即用插入。
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
更多信息: