是否正确启动没有指定上下文且没有上下文处理程序的jetty实例,然后在服务器启动后继续向其添加上下文 . 虽然我能够使用可变的HandlerCollection执行此操作,并且日志显示服务器和上下文已启动且可用,但我无法使用URL访问它 . 或者我们应该在启动时向服务器添加至少一个根上下文和上下文处理程序吗?
我做了类似于下面链接中建议的示例 . Jetty 9 (embedded): Adding handlers during runtime
我的码头版本是9.3.7.v20160115
1 回答
向正在运行的服务器添加处理程序是一种常见的模式,但文档根本不清楚("embedding jetty"教程中的所有示例都启动服务器 after 配置 . )AFAIK人员遵循以下方法:
1)使用HandlerCollection(boolean mutableWhenRunning)ctor添加/删除处理程序
2)显式添加和启动处理程序
我观察到Jetty 9.1.4中不需要#2,但它在Jetty 9.2.14及之后(BTW这些版本号被Maven挑选为泽西依赖,这与此问题完全无关 . )例如:
为了添加SOAP上下文,这是一个“习惯于在9.1.4工作”的代码(9.2.14报告404):
后来,我不得不为最后一个方法做这个(不确定是否有更好的方法):