【问题标题】:How to add a service module in wildfly-swarm with .war packaging?如何使用 .war 包装在 wildfly-swarm 中添加服务模块?
【发布时间】:2017-06-14 16:47:01
【问题描述】:

我在 pom.xml 中添加了 jdbc 驱动:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.0</version>
</dependency>

我添加了 project-defaults.yml:

swarm:
  datasources:
    data-sources:
      erp-ds:
        driver-name: sqlserver
        connection-url: jdbc:sqlserver://localhost:1433;DatabaseName=COMPARTILHADO
        user-name: teste
        password: teste
    jdbc-drivers:
      sqlserver:
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        xa-datasource-name: com.microsoft.sqlserver.jdbc.SQLServerXADataSource
        driver-module-name: com.microsoft.sqlserver

但我运行应用程序时抛出异常:

2017-06-14 13:09:54,337 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "erp-ds")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.sqlserver"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.driver-demander.java:jboss/datasources/erp-ds is missing [jboss.jdbc-driver.sqlserver]",
        "org.wildfly.data-source.erp-ds is missing [jboss.jdbc-driver.sqlserver]"
    ]
}

在 Wildfly 中,我必须在 Standalone.xml 中添加驱动程序,但在 Wildfly-swarm 中我不知道。在开发阶段,我使用 jdbcDriver 添加了一个 DatasourcesFraction,这很容易,但是当我构建 .war 并运行 uberjar java -jar ??????-swarm.jar 时会在上面抛出异常。

【问题讨论】:

    标签: java maven wildfly-swarm


    【解决方案1】:

    您实际上在 project-defaults.yml 中提供了太多信息!

    swarm:
      datasources:
        data-sources:
          erp-ds:
            driver-name: sqlserver
            connection-url: jdbc:sqlserver://localhost:1433;DatabaseName=COMPARTILHADO
            user-name: teste
            password: teste
    

    应该是你所需要的。

    通过添加 com.microsoft.sqlserver:sqljdbc4:4.0 作为项目依赖项,WF Swarm 将自动为您创建 JDBC Driver 配置。

    这可能无法解决您遇到的特定问题,因此我将查看 WF Swarm 在 /target 中修改的 WAR(没有 .original 后缀的那个),并查看您的 jdbc jar 是否在 WEB 中-INF/lib.

    【讨论】:

    • 谢谢。我重建了我的 pom.xml 并在这里简化了很多东西,它确实有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2017-12-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2017-05-13
    相关资源
    最近更新 更多