Wildflyでアプリケーションデプロイ時にMySQLのモジュールが利用できないエラーが発生

投稿者: | 2019年11月15日

WildflyでMySQLにアクセスするアプリケーションをデプロイしたところ下記のようなエラーが発生しました。

$ sudo /opt/wildfly/bin/./jboss-cli.sh -c --command='deploy /home/ec2-user/app.war'
WFLYCTL0063: Composite operation was rolled back

エラーを確認したところMySQLのドライバーを読取るところでエラーが発生していました。

14:41:57,930 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "DS")
]) - failure description: {
"WFLYCTL0412: Required services that are not installed:" => [
"jboss.jdbc-driver.mysql",
"jboss.jdbc-driver.mysql"
],
"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.driver-demander.java:jboss/datasources/DS is missing [jboss.jdbc-driver.mysql]",
"org.wildfly.data-source.DS is missing [jboss.jdbc-driver.mysql]",
"org.wildfly.data-source.DS is missing [jboss.jdbc-driver.mysql]"
]
}

調べてみるとWildflyにモジュールを追加する際にはmodule.xmlを記述する必要があるようでした。
なので、jarを配置したフォルダと同じ場所にmodule.xmlを作成しました。

$ vi /opt/wildfly/modules/system/layers/base/com/mysql/main/module.xml
<module name="com.mysql" xmlns="urn:jboss:module:1.5">
<resources>
<resource-root path="mysql-connector-java-5.1.39-bin.jar">
</resource-root></resources>
<dependencies>
<module name="javax.api">
<module name="javax.transaction.api">
</module></module></dependencies>
</module>

再度デプロイしたらエラーが解消されました。
このmodule.xmlはwildflyからの仕様でJbossの時は不要でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA