如何在appserver中实现扩展机制?
我开发的 servlet 应该 24/7 工作。我想创建一些扩展机制:在类路径中放置新的 jar 必须由主 servlet 检测到,并且应该加载一些类(无需重新启动应用程序服务器)。
目的:主 servlet 接收事件并将数据重定向到处理加载的类(扩展)。扩展实现了一些接口(例如IMyExtension
)。
也许有办法找到所有实现特定接口的类? 或者你有什么建议?
I developing the servlet that should work 24/7. And I want to create some extensions mechanism: placing new jar in classpath must be detected by the main servlet and some class should loaded (without appserver restart).
Purpose: main servlet recieves events and redirect data to process to loaded classes (extensions). Extensions implements some interface (e.g. IMyExtension
).
Maybe there is way to find all classes that implements particular interface?
Or what do you suggest?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
OSGi 是此类系统的一个不错的选择。查看 http://www.eclipse.org/equinox/ 或 http://www.springsource.com/products/dmserver 用于应用程序服务器。 OSGi 允许您动态部署和启用模块,而无需关闭服务器。
通常,您不需要查找所有实现。扩展应该在启动时注册自己,并在停止时取消注册。
A good option for such systems is OSGi. Take a look at http://www.eclipse.org/equinox/ or http://www.springsource.com/products/dmserver for application servers. OSGi lets you dynamically deploy and enable modules without shutting down the server.
Generally, you don't need to find all implementations. Extensions should register themselves on their startup and unregister on stop.