Java 向OSGi应用程序添加web界面的最佳技术是什么?
所以,我有一堆OSGi包(.jar),它们执行一堆“业务逻辑”。一切都很好,到目前为止,我一直在使用gogo命令行shell与捆绑包进行接口 我想添加一个web界面 我最初的想法是将接口捆绑到同一个OSGi容器/实例中。我想我会制作一个轻量级的嵌入式Jetty包,它反过来装载一个.war。从理论上讲,servlet可以直接与其他OSGi服务进行通信 在现实世界中,会有多个应用程序实例相互通信。我不确定是最好有一个web界面连接到每个应用程序,还是每个业务应用程序本地有一个web界面 技术没有限制或偏好,只是它必须是开源的 我的问题是,Java 向OSGi应用程序添加web界面的最佳技术是什么?,java,osgi,war,Java,Osgi,War,所以,我有一堆OSGi包(.jar),它们执行一堆“业务逻辑”。一切都很好,到目前为止,我一直在使用gogo命令行shell与捆绑包进行接口 我想添加一个web界面 我最初的想法是将接口捆绑到同一个OSGi容器/实例中。我想我会制作一个轻量级的嵌入式Jetty包,它反过来装载一个.war。从理论上讲,servlet可以直接与其他OSGi服务进行通信 在现实世界中,会有多个应用程序实例相互通信。我不确定是最好有一个web界面连接到每个应用程序,还是每个业务应用程序本地有一个web界面 技术没有限制
- 这很糟糕吗
- 有更好的方法吗
- 我是否应该将.war和业务逻辑分为两个单独的流程李>
再加上一个生成JSON的服务器端库(我使用的是Apache Sling捆绑包)和一个客户端库(如jQuery),您就有了一个强大而简单的工具包,您的servlet可以作为OSGi服务的前端。听起来您的web界面是一个管理界面,而不是最终用户界面 如果是这样的话,那么请看一下 控制台本身也是可蒙皮的,因此如果它只是一个内部应用程序,那么这可能是最容易实现的。有许多用于管理/查看的插件 我不会嵌入Jetty,正如Betrand所说,它有HTTP服务实现,但也允许直接部署WAR RE:“我应该将.war和业务逻辑分为两个单独的流程吗?”我不会为了它而分发应用程序,除非(需要高可用性或负载平衡),但你肯定应该将应用程序分为一个精简的war(仅限于UI内容)和单独的服务包 web应用程序应该管理所有实例还是每个实例管理一个实例取决于许多其他事情
- 您可能会同时部署不同的版本吗?(如果是这样,则每个实例的web应用程序将减少麻烦)
- 它是面向客户的吗?(单独的实例可能更容易保护)
- 您需要汇总信息吗?(单个web应用程序)