Ibm mobilefirst 启动worklight server(而不是客户端启动)后运行代码

Ibm mobilefirst 启动worklight server(而不是客户端启动)后运行代码,ibm-mobilefirst,startup,init,Ibm Mobilefirst,Startup,Init,我们已经使用IBM Worklight一段时间了,我们已经运行了以下问题 当服务器启动时,我们希望它运行一些初始代码,用数据填充和更新数据库。这是一个每天运行一次的过程。但为了做到这一点,我们需要能够启动cron作业或类似的东西 我们知道如何使用cron作业之类的东西。但我们没有做到的是,在Worklight服务器启动后立即启动这个cronjob 总结一下我的问题: 一旦worklight server启动,我们如何在worklight server上自动运行代码 private void co

我们已经使用IBM Worklight一段时间了,我们已经运行了以下问题

当服务器启动时,我们希望它运行一些初始代码,用数据填充和更新数据库。这是一个每天运行一次的过程。但为了做到这一点,我们需要能够启动cron作业或类似的东西

我们知道如何使用cron作业之类的东西。但我们没有做到的是,在Worklight服务器启动后立即启动这个cronjob

总结一下我的问题:

一旦worklight server启动,我们如何在worklight server上自动运行代码

private void code(){
     //Run this code once Worklight server is started
}
2014年3月7日的一些传统信息:


因此,我尝试了ServletContextListener,但没有成功。尝试在记录器中打印一些内容,以便查看导入器类是否正在运行。 这是我用过的

Java文件:

public class Importer implements ServletContextListener{

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // TODO Auto-generated method stub
        Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
        logger.warning("running this shizzle :D");

    }
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        // TODO Auto-generated method stub

    }
}
添加web.xml文件并放回.war包:

<listener>  
    <listener-class>com.ibm.nl.wwdw.server.connections.Importer</listener-class>    
</listener>
控制台日志:

[2014-03-07 12:59:22]Worklight服务器已启动 在本地主机上成功运行:8080[2014-03-07 12:59:22] 正在激活Worklight项目:移动应用程序。。。[2014-03-07 12:59:25] FWLSE2001:检测到多个IP地址。使用192.168.75.3作为 Worklight服务器的公共IP地址。您可以设置不同的 worklight.properties中的IP地址。[2014-03-07 12:59:25]FWLSE3005I: 应用程序原始报告已禁用。[2014-03-07 12:59:25] FWLST0010I:=======已启动项目的服务器 移动应用项目定制;工作灯 版本=5.0.5.20121130-0158[2014-03-07 12:59:25] 激活完成


我将创建一个实现ServletContextListener的java类。。 它有一个名为contextInitialized的方法,该方法在servlet容器首次启动时启动。

生成web.xml后,您必须将上下文侦听器添加到web.xml:

<listener>
    <listener-class>
        com.yourcomp.project.ContextListenerClass
    </listener-class>
</listener>

什么是底层服务器?是liberty、full profile还是tomcat?您需要JavaScript格式的启动代码,还是Java适合您?它在websphere上作为底层服务器运行。我希望代码在java中运行。这不是一个好主意,因为Worklight Studio中的每个构建都会重新生成.war文件中的web.xml。只有在生成并部署.war文件后才能执行此操作。在以后的.war文件部署中,很容易忘记这一步…虽然这不是最好的,但我认为这是唯一可行的步骤?启动代码必须在Worklight project war中吗?或者仅仅是在自己的战争中?如果代码可以在自己的WAR中运行,那么就可以消除为Worklight项目WAR重新生成web.xml的问题。如果它在Worklight中,对我们来说是最容易的。启动时运行的代码需要执行大量API调用,我们利用了它自己的HTTP适配器,因此我尝试了ServletContextListener,但至今没有成功。我在第一篇文章中添加了用于启动Servlet的代码。但这似乎并没有什么开始