我在 jboss 中部署了一个 spring 集成项目作为 WAR 文件。该项目使用 maven 和结构化来支持任何类型的档案 War 或 Jar。
但是,项目的依赖项(所有 spring jar 和自定义 jar)应该外部化
原因是,稍后将部署 100 多个 Spring Integration 流,如果我们在 WEB-INF/libs 中有 jar,则 WAR 的大小将增长到 ~ 50MB。由于我们已经在一个单独的 jar 中抽象了我们的大部分功能(将作为依赖项添加到我的 spring 集成项目中),外部化将导致 WAR 文件减少到 ~ 5 KB。
我没有 web.xml 并使用 WebInitializer 加载上下文(这是我常用功能的一部分并作为依赖项添加)
以下是我对 JBOSS 的尝试。
- 创建了一个模块 com.xxx.yyy 并添加了我所有的 spring/第三方和自定义 jar 作为资源。
- 将依赖项添加到清单文件。(这不起作用)
- 将jboss-deployment-structure.xml添加到我的战争WEB-INF中(不起作用)
- 如果我给出错误的模块名称,它会抛出错误,因为找不到模块。
战争被部署,但没有被初始化。如果我的 WEB-INF/lib 中有依赖项,一切都会按预期工作。
下面是我使用的jboss部署结构xml。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> <deployment> <dependencies> <module name="com.xxx.yyy" services="import" > <imports> <include path="META-INF**"/> <include path="org**"/> </imports> </module> </dependencies> </deployment> </jboss-deployment-structure>
这里是期待,
- 外部化 Jar 依赖项。
- 将依赖项导入我的战争(清单或 jboss-deployment-structure.xml)
- 应该使用 Spring Service 应该被初始化。
- 如果库在 WEB-INF 中,部署的战争应该像它一样工作
请帮忙...