2016-09-01 238 views
8

我想在Wildfly 10.0添加数据源,但是当我测试连接此抛出的错误消息:WFLYCTL0412:未安装所需的服务:

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"} 
} 

从服务器日志中的错误:

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]" 
    ] 
} 

我正在复制从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> 

和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> 

我在部署文件夹一个PostgreSQL,9.2-1004.jdbc3.jar。

为什么会出现此错误?我可以忘记配置什么?

+0

我有同样的问题文件。当我将数据源更改为PostgreSQL时,总会发生这种情况。你找到解决你的问题? – netto

回答

6

司机罐子应该是不会在部署文件夹中的模块文件夹可暗示这个时候你写道:

<resources> 
    <resource-root path="postgresql-9.2-1004.jdbc3.jar"/> 
</resources> 
+0

从部署中删除了jar –

3

我有我的工作是这样的:

1 - 创建一个文件夹在WildFly安装DIR: \模块\有机\ postgres的\主

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> 

3 - 驱动程序JAR文件复制到第1步

4的相同的文件夹 - 在standalone.xml添加数据源:部署的.war期间

<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>