使用插件扩展 Java Web 应用程序

2024-02-09

我的这个 Web 应用程序已经变得一团糟,难以管理。

我想将其分成一个通用的“框架”部分(仍然包括页面和图像等网络内容)和几个添加额外功能和屏幕的模块。我希望这种重构也可以作为第三方扩展的插件系统。

所有模块都需要是单独的部署单元,最好是 war 或 jar 文件。

我试图只制作几个常规的 war 文件,但 Tomcat 将(根据 servlet 规范)这些 war 文件彼此完全分开,因此它们无法共享它们的类。

我需要插件才能看到“主”类路径。

我需要主应用程序对插件进行一些控制,例如能够列出它们并设置它们的配置。

我希望插件本身(除非它们指定依赖项)与可能在同一 Tomcat 上运行的任何其他不相关的 Web 应用程序之间保持完全分离。

我希望它们根植于“主”应用程序 URL 前缀下,但这不是必需的。

我想使用 Tomcat(大型架构更改需要与太多人协调),但也想了解 EJB 或 OSGi 世界中的干净解决方案(如果有)。


我一直在考虑使用 OSGi 来解决您所描述的相同问题。特别是我正在考虑使用Spring动态模块 http://www.springframework.org/osgi.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用插件扩展 Java Web 应用程序 的相关文章

  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 我必须做什么才能使通过 HTTPS 提供的图像等内容缓存在客户端?

    我使用 Tomcat 作为服务器 使用 Internet Explorer 6 作为浏览器 我们应用程序中的网页大约有 75 张图像 我们正在使用 SSL 加载所有内容似乎非常慢 如何配置 Tomcat 以便 IE 缓存图像 如果您通过 h
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 如何为 Jackson 编写一个包罗万象的(反)序列化器

    当您提前知道类型时 编写自定义序列化器非常容易 例如 MyType一个人可以写一个MyTypeSerializer extends StdSerializer
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu

随机推荐

  • 微服务依赖管理 - 治理还是领域驱动设计?

    背景 由于长期的单体式痛苦 一家采用联邦模式的国际公司正在转型为微服务 能够快速部署的自治团队是非常理想的 尽管理论上如此 但服务确实相互依赖以获得更高的功能 但它们是自治的 独立开发和部署 由于这是联邦模式和分散控制 我们不能像联合国那样
  • Java 安全管理器会降低性能吗?

    实施 Java 安全管理器是否会导致性能下降 这完全取决于实现的细节以及应用程序 当然有可能实现一个需要很长时间来检查某些权限的安全管理器 以及一个需要非常频繁地检查这些权限的应用程序 从而导致可怕的性能 但通常情况下 检查权限的频率不足以
  • 在 Firebase 数据库模拟器中模拟更新

    我的问题很简单 我不知道如何在 Firebase Simulator 中模拟多个更新 由于我什至不知道如何开始 所以我无法提供任何代码 任何指导都会非常有帮助 目前无法在 Firebase 数据库安全规则模拟器中执行多位置更新 拥有该功能就
  • OS X 上的 ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:747)

    我正在尝试这段代码 import pandas as pd fiddy states pd read html https simple wikipedia org wiki List of U S states print fiddy s
  • 所有编译时常量都是内联的吗?

    假设我有一堂这样的课 class ApplicationDefs public static final String configOption1 some option public static final String configO
  • 使用 django 和 xgettext 进行本地化

    我正在翻译我的网站 但是当我尝试运行命令时 manage py makemessages locale bs 我不断收到如下错误 CommandError errors happened while running xgettext on
  • 将图像添加到 pandas DataFrame

    假设我有一个 DataFrame 我想导出为 PDF 在数据框中 我有以下列 代码 名称 价格 净值 销售额 每一行都是一个产品 我想向该 DataFrame 中的每个产品添加一个我可以使用 BeautifulSoup 获得的图像 有什么方
  • 网页设计:“向下滚动导航”

    某些网络应用程序中使用的技术是什么 例如http www alfredapp com http www alfredapp com导航在哪里向下滚动网站以显示另一个网站 为了获得这种导航方式 我会将所有内容放在一个页面上并使用 平滑滚动效果
  • Spark sql字符串到时间戳缺少毫秒

    Why is import spark implicits val content Seq 2019 09 11 17 16 54 762000000 toDF year month day hour minute second nano
  • 如何使用 Google 协作平台中嵌入的网络应用程序链接到另一个页面?

    单击新页面的链接后 从用户的角度来看 什么也没有发生 控制台打印出如下错误 不安全的 JavaScript 尝试启动具有原点的框架导航 来自带有 URL 的框架的 https sites google com https n frzjyfh
  • JQuery DatePicker 只读

    当我将日期选择器设置为只读时 我发现用户无法在文本框中输入任何内容 datepicker attr readonly readonly 但是 他们仍然可以使用日历更改该值 如何隐藏日历以使用户无法更改日期值 我不想禁用日期选择器 因为我需要
  • Travis CI:构建矩阵项中的分支过滤器

    我们想知道是否有任何方法可以向 Travis 矩阵项添加过滤器 在我们的特定情况下 我们希望仅在特定分支上运行某些作业 以下示例是配置此场景的理想方法 但它似乎不起作用 matrix include env BUILD TYPE relea
  • 超正方体的替代方案

    Python 或 OpenCV 中是否有替代软件或任何库可以替代 Tesseract 进行字符识别 有什么建议的可以用Python实现的字符识别方法吗 Thanks This site https github com kba awesom
  • Clojure 形式到字符串

    有没有办法将 Clojure 形式转换为字符串 例如 转变 and f 1 g 3 to and f 1 g 3 gt defmacro string it x str x user string it gt string it 1 2 1
  • 在Matlab中循环多个文件

    我需要让 Matlab R2013a 在目录中查找包含 txt 扩展名的所有文件 然后对这些文件执行某些数学表达式 之后 脚本必须打印出与输入文件同名的文件中的数据 除了添加一些新单词以便我可以区分之外 例如 Input file1 txt
  • Java 框架中的单页 Web 应用程序或示例? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有人看过 Java 中的示例或执行过以下操作 http duganchen ca single page web app archit
  • 如何计算两个给定日期之间的月数(基线和后续日期)

    我正在尝试确定基线和随访之间的月数 我的约会看起来像这样 Baseline Follow Up 10 6 15 10 10 17 10 6 15 4 20 18 10 6 15 4 18 18 10 6 15 7 2 18 10 6 15
  • Seam / Spring WebFlow 应用程序中的 StackOverflowError

    我们正在逐步用 Spring MVC 和 Spring Webflow 替换 Seam 组件 运行 JMeter 测试几个小时后 日志会因 StackOverFlowErrors 变得混乱 javax servlet ServletExce
  • 如何在Xcode LLVM中编写有关LOOP的内联汇编代码?

    我正在研究内联汇编 我想在 Xcode 4 LLVM 3 0 编译器下的 iPhone 中编写一个简单的例程 我成功编写了基本的内联汇编代码 例子 int sub int a int b int c asm sub 0 1 2 r c r
  • 使用插件扩展 Java Web 应用程序

    我的这个 Web 应用程序已经变得一团糟 难以管理 我想将其分成一个通用的 框架 部分 仍然包括页面和图像等网络内容 和几个添加额外功能和屏幕的模块 我希望这种重构也可以作为第三方扩展的插件系统 所有模块都需要是单独的部署单元 最好是 wa