运行worklight服务器后运行代码(非客户端启动)

时间:2014-03-06 14:16:32

标签: ibm-mobilefirst startup init

我们已经使用IBM Worklight一段时间了,我们已经遇到了以下问题。

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

我们知道如何使用cron作业和类似的东西。但是我们没有管理的是在工作灯服务器启动后启动此cronjob。

总结一下我的问题:

一旦工作灯服务器启动,我们如何在worklight服务器上自动运行代码?

private void code(){
     //Run this code once Worklight server is started
}

2014年3月7日的一些附加信息:

所以我尝试过ServletContextListener但没有成功。试图在记录器中打印一些东西,这样我就可以看到我的Importer类是否正在运行。 这是我用过的东西

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 Server启动了   在localhost上成功:8080 [2014-03-07 12:59:22]
  激活Worklight项目:mobile-app ... [2014-03-07 12:59:25]   FWLSE2001I:检测到多个IP地址。使用192.168.75.3作为   Worklight Server的公共IP地址。你可以设置一个不同的   worklight.properties中的IP地址。 [2014-03-07 12:59:25] FWLSE3005I:   应用程序原始报告已禁用。 [2014-03-07 12:59:25]   FWLST0010I:======启动项目服务器   移动应用项目,定制;工作灯   version = 5.0.5.20121130-0158 [2014-03-07 12:59:25]
  激活完成。

1 个答案:

答案 0 :(得分:0)

我会创建一个实现ServletContextListener的java类。 它有一个名为contextInitialized的方法,在servlet容器首次触发时触发。 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html

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

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