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