我正在尝试在Wildfly 10.0中添加数据源,但是当我测试连接时,会抛出以下错误消息:
Unexpected HTTP response: 500
Request
{
"address" => [
("subsystem" => "datasources"),
("data-source" => "PostgreCrawlazo")
],
"operation" => "test-connection-in-pool"
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0042: failed to match pool. Check JndiName: java:/crawlazo",
"rolled-back" => true,
"response-headers" => {"process-state" => "reload-required"}
}
Run Code Online (Sandbox Code Playgroud)
来自服务器日志的错误:
2016-09-01 16:28:40,524 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "PostgreCrawlazo")
]) - failure description: {
"WFLYCTL0412: Required services that are not installed:" => [
"jboss.jdbc-driver.postgres",
"jboss.jdbc-driver.postgres"
],
"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.driver-demander.java:/crawlazo is missing [jboss.jdbc-driver.postgres]",
"org.wildfly.data-source.PostgreCrawlazo is missing [jboss.jdbc-driver.postgres]",
"org.wildfly.data-source.PostgreCrawlazo is missing [jboss.jdbc-driver.postgres]"
]
}
Run Code Online (Sandbox Code Playgroud)
我正在从standalone.xml和module.xml复制相同的配置文件
这是我如何在standalone.xml中设置数据源的一部分:
<datasource jndi-name="java:/crawlazo" pool-name="PostgreCrawlazo" enabled="true">
<connection-url>jdbc:postgresql://x.x.x.x:5432/crawlazo</connection-url>
<driver>postgres</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>40</max-pool-size>
</pool>
<security>
<user-name>someUser</user-name>
<password>somePasswd</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="postgres" module="org.postgres">
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
Run Code Online (Sandbox Code Playgroud)
和module.xml:
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.2-1004.jdbc3.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)
我在部署文件夹中有一个postgresql-9.2-1004.jdbc3.jar.
为什么会出现此错误?我可以忘记配置什么?
驱动程序jar应该位于模块文件夹中,而不是在部署文件夹中,因为当您写下:
<resources>
<resource-root path="postgresql-9.2-1004.jdbc3.jar"/>
</resources>
Run Code Online (Sandbox Code Playgroud)
我的工作是这样的:
1 - 在WildFly安装目录中创建一个文件夹:\ modules\org\postgres\main
2 - 在上面的文件夹中创建一个"module.xml",其内容为:
<?xml version='1.0' encoding='UTF-8'?>
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
<resources>
<resource-root path="postgresql-9.4-1204-jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)
3 - 将驱动程序JAR文件复制到步骤1的同一文件夹中
4 - 在standalone.xml中添加数据源:
<datasource jta="false" jndi-name="java:jboss/datasources/YourDS" pool-name="YourDS" enabled="true" use-ccm="false">
<connection-url>jdbc:postgresql://localhost:5432/yourDB</connection-url>
<driver>postgres</driver>
<security>
<user-name>user</user-name>
<password>pass/password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="postgres" module="org.postgres">
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45523 次 |
| 最近记录: |