java - 如何在 JBOSS EAP6.4 的自定义模块后使用 Spring Boot 应用程序使用自定义 module.xml 并进行部署

标签 java spring spring-boot classloader jboss6.x

我们的项目使用 artesia 3rd 方产品,它部署在 JBOSS EAP6.4 中,我想在我们的项目中使用 Spring Boot,当我编写示例 REST Web 服务时,我可以通过 URL 访问 REST Web 服务。

根据我们产品的文档,如果我们需要自定义项目,我们需要通过在 META-INF 文件夹中指定以下两个 JBOSS 文件来编写自定义 war

jboss-all.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss umlns="urn:jboss:1.0">
    <jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
        <dependency name="artesia.ear" />
    </jboss-deployment-dependencies>
</jboss>

因此我们的自定义逻辑应该在 artesia.ear 成功启动后开始。

我们的jboss-deployment-struct.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <sub-deployment>
        <dependencies>
            <module name="deploy" />
        </dependencies>
    </sub-deployment>
</jboss-deployment-structure>

上面的部署模块包含项目运行所需的所有 jar。

当我按照同样的方法创建没有 spring 的 war 时,它成功了并且没有任何问题,我们可以使用它来自定义 war 。

现在我想在 Spring-boot 1.4.1 应用程序中做同样的事情,我的 spring-boot 应用程序应该在 artesia.ear 成功启动后启动,除了 spring-boot 应用程序应该使用 module.xml 中的 jars。

我已将上述两个 xml 放入 Spring Boot 应用程序的 META-INF 中,但在 JBOSS EAP6.4 中部署时失败

下面是我收到的错误 jboss-server.log

我需要做什么才能在我的 spring-boot 应用程序中使用相同的内容

编辑1:

我尝试将两个 jboss 文件放在 spring-boot 应用程序的 WEB-INF 文件夹下,但仍然面临相同的问题

最佳答案

我们需要确保 META-INF 和 WEB-INF 文件夹并排放置,而不是将 META-INF 文件夹保留在 WEB-INF 的类文件夹中,这是默认的 spring-boot META-INF 文件夹所在的位置。

关于java - 如何在 JBOSS EAP6.4 的自定义模块后使用 Spring Boot 应用程序使用自定义 module.xml 并进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972855/

相关文章:

java - JAX-WS、@XmlJavaTypeAdapter 和自定义枚举

java - JpaRepository 不保存实体

java - 修改json字符串中的属性值

java - hibernate openSession() 与 getCurrentSession()

java - Mongodb 非法访问异常

spring - QueryDSL 生成的类在 Spring Tool Suite 的 maven 项目中不断被删除

java - Spring Boot JPA @Query 更新不起作用

spring - 用于 API 安全性的 AntMatcher 和 contextPath

java - 在 java spring boot 中使用 @entity 注释是否必须使用无参数构造函数?

java - 从 recyclerView 中清除选择