Java 如何将PostgreSQL数据源添加到WildFly 9.0?
我在以下位置尝试过教程:Java 如何将PostgreSQL数据源添加到WildFly 9.0?,java,postgresql,jdbc,datasource,wildfly,Java,Postgresql,Jdbc,Datasource,Wildfly,我在以下位置尝试过教程: /jboss cli.sh module add--name=org.postgres--resources=/tmp/postgresql-9.3-1101.jdbc41.jar--dependencies=javax.api,javax.transaction.api /subsystem=datasources/jdbc driver=postgres:add(driver name=“postgres”,driver module name=“org.postg
/jboss cli.sh
module add--name=org.postgres--resources=/tmp/postgresql-9.3-1101.jdbc41.jar--dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc driver=postgres:add(driver name=“postgres”,driver module name=“org.postgres”,driver class name=org.postgresql.driver)
数据源添加--jndi name=java:/PostGreDS--name=PostgrePool--connection url=jdbc:postgresql://localhost/postgres --驱动程序名称=postgres--用户名=postgres--密码=postgres
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0041: Failed to load module for driver [org.portgres]",
"rolled-back" => true
}
如何将Postgres数据源添加到WildFly 9.0?将Postgres JDBC驱动程序放入部署文件夹(只需部署)。 现在使用CLI控制台并输入以下命令:
data-source add --name=PostgresqlDS --jndi-name=java:jboss/datasources/PostgresqlDS --driver-name=postgresql-9.4-1201.jdbc41.jar --connection-url=jdbc:postgresql://localhost:5432/test --user-name=USER --password=PASSWORD
检查您的驱动程序是否为jdbc4
我不知道为什么,但是通过web控制台添加数据源不起作用。通过CLI工作
扩展JDBC驱动程序的正确解决方案是将驱动程序作为模块添加到服务器。
在WildFly 9中,您可以使用cli控制台执行此操作您无法通过将JDBCJAR文件(使用xml)复制到“模块”文件夹(如WildFly 8中)来实现这一点
执行命令:
module add --name=org.postgres --resources=postgresql-9.4-1201.jdbc41.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
要列出已安装的驱动程序,请输入:
/subsystem=datasources:installed-drivers-list
使用驱动程序创建数据源将很容易
请使用9.0最终版本。在CR中是bug
问候,,
Pawel M我遇到了与WildFly 9相同的错误和行为。我是WF的新手,但经过一些研究,我发现问题在于模块命名。 如果我理解得很好,模块中的实际包名将用于解析module.xml的路径
我将这些步骤改为下面的步骤,效果很好:
module add--name=org.postgresql--slot=main--resources=/usr/local/lib/postgresql-9.4-1201.jdbc4.jar--dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
我正在docker中运行wildfly 10:
#ADD DATASOURCES
RUN mkdir -p $JBOSS_HOME/modules/org/postgres/main
COPY files/postgresql-9.4.1208.jre7.jar $JBOSS_HOME/modules/org/postgres/main/
COPY files/module.xml $JBOSS_HOME/modules/org/postgres/main/
COPY files/standalone.xml $JBOSS_HOME/standalone/configuration
module.xml在哪里
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
<resources>
<resource-root path="postgresql-9.4.1208.jre7.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
和standalone包含驱动程序:
<driver name="postgresql" module="org.postgres">
<xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
</driver>
org.postgresql.Driver
那么数据源可以是:
<datasource jndi-name="java:jboss/datasources/PostgresDS" pool-name="PostgresDS" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://ndis-db:5432/postgres</connection-url>
<driver>postgresql</driver>
...
jdbc:postgresql://ndis-db:5432/postgres
postgresql
...
请注意,我的ndis db是postgres docker。在您的情况下,可以是localhost
我是如何以你提到的错误结束的:
1.文件名拼写错误
2. /模块/组织…等包含输入错误
3.module.xml拼错为modules.xml
4. ... 这很简单,但如果你是新的JBOSS EAP/WilFly,可能需要更多时间 使用以下步骤创建数据源:
右键单击jboss cli(电源脚本文件)-->Run with Power shell
(控制台将打开)小心使用pathpath/to这是您下载的Postgresql jdbc.jar所在的路径。您没有提到您的java/jdbc版本。我刚刚经历了同样的问题,这是由于驱动程序与Java1.8不匹配造成的。随着wildfly 9的升级,您是否也升级了Java “.jdbc41.”驱动程序版本是为Java1.7构建的。Postgres有一个矩阵,显示了兼容的Java/JDBC和Postgres驱动程序版本的组合。也许您需要:postgresql-9.4.1209.jar(适用于1.8/jdbc42) 然后在CLI中(假设域模式和配置文件=完整)
请注意:我已经针对WildFly 10测试了上述CLI命令,它可以正确地创建JDBC驱动程序和数据源。 除此之外,我还可以看到报告的错误日志中包含模块名称(“org.portgres”)的错误:
免责声明:我是mastertheboss.com的所有者这对我不起作用。我仍然得到了czerny得到的WFLYJCA0041错误。另外,除了模块的名称(从org.postgres改为org.postgresql)之外,您还更改了什么吗?它现在适合我了。我的JBOSS_HOME环境变量不是最新的。
module add --name=org.postgresql.Driver --resources=/tmp/postgresql-9.4.1209.jar
connect
/profile=full/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql.Driver",driver-class-name=org.postgresql.Driver)
exit
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0041: Failed to load module for driver [org.portgres]",
"rolled-back" => true
}