wildfly-swarm .war 打包后如何添加服务模块?
How to add a service module in wildfly-swarm with .war packaging?
我在 pom.xml 中添加了 jdbc 驱动程序:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
然后我在项目中添加-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
抛出异常时。
您实际上在项目中提供了太多信息-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 驱动程序配置。
这可能无法解决您遇到的特定问题,所以我会看一下 WF Swarm 在 /target 中修改的 WAR(没有 .original 后缀的那个),看看是否你的 jdbc 罐子在 WEB-INF/lib.
里面
我在 pom.xml 中添加了 jdbc 驱动程序:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
然后我在项目中添加-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
抛出异常时。
您实际上在项目中提供了太多信息-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 驱动程序配置。
这可能无法解决您遇到的特定问题,所以我会看一下 WF Swarm 在 /target 中修改的 WAR(没有 .original 后缀的那个),看看是否你的 jdbc 罐子在 WEB-INF/lib.
里面