当我尝试启动我的wildfly服务器时,出现此错误:
2018-11-17 21:29:55,203 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("jdbc-driver" => "org.postgresql")
])-故障描述:“ WFLYJCA0041:无法加载驱动程序[org.postgresql]的模块”
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "swap")
])-失败描述:{“ WFLYCTL0180:缺少依赖项/不可用依赖项的服务” => [ “缺少jboss.driver-demander.java:jboss/datasources/swap [jboss.jdbc-driver.org_postgresql]”, “缺少jboss.data-source.java:jboss/datasources/swap [jboss.jdbc-driver.org_postgresql]” ]} 2018-11-17 21:30:07,625错误[org.jboss.as.controller.management-operation](控制器引导线程)WFLYCTL0013:操作(“添加”)失败-地址:([ (“子系统” =>“数据源”), (“数据源” =>“交换”) ])-失败描述:{“ WFLYCTL0180:缺少依赖项/不可用依赖项的服务” => [ “缺少jboss.driver-demander.java:jboss/datasources/swap [jboss.jdbc-driver.org_postgresql]”, “缺少jboss.data-source.java:jboss/datasources/swap [jboss.jdbc-driver.org_postgresql]”, “缺少jboss.data-source.java:jboss/datasources/swap [jboss.jdbc-driver.org_postgresql]” ]}
这是我的standalone.xml:
<datasources>
<datasource jndi-name="java:jboss/datasources/swap" pool-name="swap" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://127.0.0.1:5432/swap?useUnicode=yes&characterEncoding=UTF-8</connection-url>
<driver>org.postgresql</driver>
<security>
<user-name>postgres</user-name>
<password>postgres</password>
</security>
</datasource>
<drivers>
<driver name="org.postgresql" module="org.postgresql">
<driver-class>org.postgresql.Driver</driver-class>
<xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
</driver>
</drivers>
</datasources>
这是我的postgresql模块:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.5.jar"/>
</resources>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
可能是什么问题?
答案 0 :(得分:0)
您的module.xml
无效。缺少<dependencies>
标签。请尝试以下操作:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
编辑:
module.xml
文件和postgresql-42.2.5.jar
必须位于C:\wildfly\wildfly-9.0.2.Final\modules\system\layers\base\org\postgresql\main
中。还建议将模块直接放入C:\wildfly\wildfly-9.0.2.Final\modules\
中。因此,对于您的情况C:\wildfly\wildfly-9.0.2.Final\modules\org\postgresql\main
。还可以看看EAP7 Documentation。考虑使用jboss-cli
。
答案 1 :(得分:0)
对于 WildFly 服务器的 PostgresSQL 配置,您应该按照以下步骤操作。
第一步:添加PostgreSQL模块
如果不存在,则创建新文件夹 ${wildfly_home}/modules/system/layers/base/org/postgresql/main/
。
通过此链接下载最新的驱动程序 Jar => https://jdbc.postgresql.org/download.html 并放在上述文件夹下。
也在那个新文件夹中,创建 module.xml
并放置以下配置。
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.23.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
可能是 jar 版本需要在 resource-root
中更新。
第 2 步:从 standalone.xml
删除现有的 <driver>
配置并添加新配置,如下所示。
<driver name="postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
删除现有的 <datasource>
配置并添加新配置,如下所示。
<datasource jndi-name="java:jboss/datasources/PostgresDS" pool-name="PostgresDS" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://127.0.0.1:5432/swap?useUnicode=yes&characterEncoding=UTF-8</connection-url>
<driver>postgresql</driver>
<security>
<user-name>postgres</user-name>
<password>postgres</password>
</security>
<pool>
<max-pool-size>20</max-pool-size>
</pool>
</datasource>
将 default-bindings
数据源名称从 PostgresDS
修改为 ExampleDS
。
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/PostgresDS" ...
确保您已在 PostgreSQL 数据库服务器中创建了 swap
数据库。
现在,运行服务器,一切都会好的。