Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jetty中嵌入非web应用程序_Jetty - Fatal编程技术网

在jetty中嵌入非web应用程序

在jetty中嵌入非web应用程序,jetty,Jetty,如何配置jetty6以启动非web应用程序(不是servlet)?我的Java应用程序是一个rabbitmq消费者,通过tcp侦听ampq消息。我可以让jetty init()调用我的主入口点。有更好的方法吗?为什么不提供一个简单的servlet,提供一个init()方法并从中调用应用程序?i、 e.将其包装在一个几乎不做任何事情的servlet包装器中 它不必回复获取/帖子等,尽管你可能会发现这很有用,并通过一个简单的HTML页面报告应用程序状态。如果你想要一个完整的答案,你需要提供更多的信息

如何配置jetty6以启动非web应用程序(不是servlet)?我的Java应用程序是一个rabbitmq消费者,通过tcp侦听ampq消息。我可以让jetty init()调用我的主入口点。有更好的方法吗?

为什么不提供一个简单的servlet,提供一个
init()
方法并从中调用应用程序?i、 e.将其包装在一个几乎不做任何事情的servlet包装器中


它不必回复
获取
/
帖子
等,尽管你可能会发现这很有用,并通过一个简单的HTML页面报告应用程序状态。

如果你想要一个完整的答案,你需要提供更多的信息,但我可以建议几种方法,它们会给出不同的行为(您需要为您的用例选择正确的一个)

1.只需在
jetty.xml
文件中放入正确的代码。xml文件是一种非常完整的执行语言,因此您可以简单地调用对象上的方法。适当的静态方法以及
标记应该可以做到这一点
缺点是,你并没有从Jetty得到任何东西——你只是将你的启动方法与Jetty使用的启动过程捆绑在一起

2.构建一个实现Jetty
LifeCycle
接口的组件(最好的选择是扩展
AbstractLifeCycle
),然后调用
Server.addLifeCycle()

这将允许您在Jetty启动时打开端口,在Jetty停止时干净地关闭端口等。
但你所得到的只是生命周期,在部署方面你什么也得不到

3。与选项1相同,但将其放入(或
jetty env.xml
),这允许您将其绑定到WAR文件的部署中。
对于选项1来说,这并不能给您带来太多好处,但如果您试图将应用程序部署到现有的Jetty设置中,这可能会有所帮助

4.与选项1相同,但使用的是
jetty web.xml
。我不确定这会有多好,因为我认为您无法将
生命周期
附加到
WebAppContext
,但它可能工作正常-您需要对此进行更多调查

5.按照,只需编写一个带有
init()
方法的servlet,并在启动时进行
初始化
,然后不要将其映射到任何URL。在该
init
中调用您的entry方法