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