2016-09-30 112 views
1

我想在Wildfly 10中創建一個與PostgreSQL 9.5數據庫連接的數據源,我已經在Internet上看到了一些教程,但仍然無法完成。創建Wildfly 10數據源的問題

如果有人能幫助我,我會非常感謝。

這是錯誤消息:enter code here

9:06:46,300 ERROR [org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer] (MSC service thread 1-6) Error during the deployment of java:jboss/datasources/CiberWebCopierDS: javax.resource.ResourceException: IJ031103: At least one connection property must be defined for datasource-class: org.postgresql.Driver 
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createConnectionFactory(LocalManagedConnectionFactory.java:108) 
    at org.jboss.jca.deployers.common.AbstractDsDeployer.deployDataSource(AbstractDsDeployer.java:772) 
    at org.jboss.jca.deployers.common.AbstractDsDeployer.createObjectsAndInjectValue(AbstractDsDeployer.java:312) 
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.deploy(AbstractDataSourceService.java:371) 
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:149) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

19:06:46,305 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service org.wildfly.data-source.CiberWebCopierDS: org.jboss.msc.service.StartException in service org.wildfly.data-source.CiberWebCopierDS: WFLYJCA0033: Error during the deployment of CiberWebCopierDS 
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:163) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032: Unable to start the ds because it generated more than one cf 
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:151) 
    ... 5 more 

19:06:47,988 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "CiberWebCopierDS") 
]) - failure description: { 
    "WFLYCTL0080: Failed services" => {"org.wildfly.data-source.CiberWebCopierDS" => "org.jboss.msc.service.StartException in service org.wildfly.data-source.CiberWebCopierDS: WFLYJCA0033: Error during the deployment of CiberWebCopierDS 
    Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032: Unable to start the ds because it generated more than one cf"}, 
    "WFLYCTL0412: Required services that are not installed:" => ["org.wildfly.data-source.CiberWebCopierDS"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined 
} 
19:06:47,990 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "CiberWebCopierDS") 
]) - failure description: { 
    "WFLYCTL0080: Failed services" => {"org.wildfly.data-source.CiberWebCopierDS" => "org.jboss.msc.service.StartException in service org.wildfly.data-source.CiberWebCopierDS: WFLYJCA0033: Error during the deployment of CiberWebCopierDS 
    Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032: Unable to start the ds because it generated more than one cf"}, 
    "WFLYCTL0412: Required services that are not installed:" => [ 
     "org.wildfly.data-source.CiberWebCopierDS", 
     "org.wildfly.data-source.CiberWebCopierDS" 
    ], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined 
} 
19:06:48,017 INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report 
WFLYCTL0186: Services which failed to start: service org.wildfly.data-source.CiberWebCopierDS: org.jboss.msc.service.StartException in service org.wildfly.data-source.CiberWebCopierDS: WFLYJCA0033: Error during the deployment of CiberWebCopierDS. 

這是我如何創建module.xml

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.3" name="com.h2database.h2"> 
    <resources> 
     <resource-root path="h2-1.3.173.jar"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.transaction.api"/> 
     <module name="javax.servlet.api" optional="true"/> 
    </dependencies> 
</module> 

這是驅動程序定義:

<driver name="postgres" module="org.postgresql"> 
    <datasource-class>org.postgresql.Driver</datasource-class> 
</driver> 

,這是數據源定義:

<datasource jndi-name="java:jboss/datasources/CiberWebCopierDS" enabled="true" use-java-context="true" pool-name="CiberWebCopierDS"> 
    <connection-rl>jdbc:postgresql://localhost:5432/CiberWebCopierDB</connection- url> 
    <driver>postgres</driver> 
    <security> 
     <user-name>postgres</user-name> 
     <password>postgresql</password> 
    </security> 
</datasource 

>

回答

1

您提供的module.xml不是Postgres的,它是一個H2數據庫..

嘗試使用以下模塊,並記住下載postrgres驅動程序,將其放置在modules/org/postgresql/main中,並將「postgresql-YX-Z.jdbcV.jar」更改爲您下載的驅動程序的名稱。

其餘的配置看起來不錯,但我不太確定在驅動程序部分設置datasource-class,我認爲這在數據源聲明中使用了驅動程序類元素。

綜上所述:

module.xml

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"> 
<resources> 
<resource-root path="postgresql-Y.X-Z.jdbcV.jar"/> 
</resources> 
<dependencies> 
<module name="javax.api"/> 
<module name="javax.transaction.api"/> 
</dependencies> 
</module> 

驅動程序定義

<driver name="postgres" module="org.postgresql"/> 

數據源定義

<datasource jndi-name="java:jboss/datasources/CiberWebCopierDS" enabled="true" use-java-context="true" pool-name="CiberWebCopierDS"> 
    <connection-url>jdbc:postgresql://localhost:5432/CiberWebCopierDB</connection-url> 
    <driver-class>org.postgresql.Driver</driver-class> 
    <driver>postgres</driver> 
    <security> 
     <user-name>postgres</user-name> 
     <password>postgresql</password> 
    </security> 
</datasource> 

編輯:作爲一個方面說明,我認爲,如果你想要t o在驅動程序部分聲明數據源類,您需要使用xa-datasource-class元素而不是datasource-class,如果需要,可以嘗試。