这几天一直被这个问题困扰。我无休止地用谷歌搜索,但几天后仍然没有找到解决方案。我的项目的最后期限几乎到了,所以你们是我最后的选择。
我的项目:
我有一个足够简单的 Web 应用程序,您可以在其中提交文件(我们称之为请求)并等待它被处理。提交请求后,详细信息将插入文本文件并保存。可以随时查看他/她的请求状态。这是我的客户端部分。
然后,我有一个持续 24/7 的引擎在后台运行,不断检查上述文本文件是否有新请求。一旦找到新请求,它就会开始处理它。完成后,它会更改其状态并更改文本文件中需要的任何详细信息。在 Eclipse 中,我将其作为 Java 应用程序运行。我还可以将其导出为可运行的 jar 并通过命令行运行。
我想做什么:
我希望能够将这两个部分组合在一起同时工作。这意味着一旦我部署了 Web 应用程序(WAR 文件),我希望引擎也能运行。我希望在 BLUEMIX 上部署它。我已经在 BLUEMIX 上完美地部署了客户端部分,但我只是不知道如何将引擎与它打包在一起。我在 Eclipse 上使用 WebSphere Application Server 和 Tomcat 进行测试。一切正常,但我只需要将这两个部分合并为 1。我尝试向项目添加一个监听器类,但问题是一旦我运行引擎类,它就不会加载我的 Web 应用程序,因为引擎假设只是继续运行(它有一个 while 循环)直到它被终止。
我是 Web 应用程序开发的新手,如果有人能为我指出正确的方向,那将非常有帮助!
最佳答案
尽管我可以帮助您获得在 Bluemix 中运行的内容(例如,通过自定义启动命令,或从 Liberty 派生另一个进程等),但我确实认为这不是解决您的问题的正确设计。正如其他人已经指出的那样,您可以考虑将这两个部分(Web 部分和工作部分)部署为两个应用程序,并通过队列服务(如 MQ Light 服务)将它们集成,或者使用线程池重写工作人员自由。如果应用程序要处理大量请求,则第一个选项更好。您可以在此处找到有关如何在 Bluemix 中执行此操作的示例:https://developer.ibm.com/messaging/2015/05/22/getting-started-with-java-apps-using-the-mq-light-service-for-bluemix/
关于java - 与 Web 应用程序同时运行 jar 文件(独立的 java 控制台应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719682/