Como criar datasource no WildFly 10?

8 respostas
servidorpostgresqlwebjava
R

Olá, galera!
Estou tentando criar um datasource no servidor wildfly, mas não estou conseguindo… Segue os parâmetros
Os arquivos de configuração estao como segue:

wildfly-10.1.0.Final/modules/org/postgresql/main/module.xml (o arquivo postgresql-42.1.4.jar está na mesma pasta):

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

E wildfly-10.1.0.Final/standalone/configuration/standalone.xml:

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
  <datasources>
<!-- ECOMMERCE DATASOURCE: ecommerceDS -->
	<datasource jta="false" jndi-name="java:jboss/datasources/ecommerceDS" pool-name="ecommerceDS"	enabled="true">
        		<connection-url>jdbc:postgresql://localhost:5432/ecommerce</connection-url>
		<driver-class>org.postgresql.Driver</driver-class>
		<driver>postgresql</driver>
		<security>
			<user-name>postgres</user-name>
	                <password>postgres</password>
		</security>
	</datasource>
    <drivers>
		<driver name="postgresql" module="org.postgresql"/>
    </drivers>
  </datasources>
</subsystem>

Depois de configurar os arquivos, inicio o servidor e depois o jboss-cli.sh. Ao executar o comando para criar o datasource, recebo o seguinte erro:

[standalone@localhost:9990 /] /subsystem=datasources/data-source=ecommerceDS:add(jndi-name=java:jboss/datasources/ecommerceDS, driver-name=postgresql, connection-url=jdbc:postgresql://localhost:5432/ecommerce,user-name="postgres",password="postgres")
{
    "outcome" => "failed",
    "failure-description" => "WFLYCTL0212: Duplicate resource [
    (\"subsystem\" => \"datasources\"),
    (\"data-source\" => \"ecommerceDS\")
  ]",
     "rolled-back" => true
}
[standalone@localhost:9990 /] |

Alguém sabe o que está errado?

8 Respostas

D

Tem um jeito mais facil de criar um datasource,

Com Wildfly ligado, acesse o http://localhost:9990/console/App.html#profile/ds-finder, seleciona o Non-XA e configure o datasource.

mas antes faça o deploy do driver do banco. tudo isso pode ser feito na interface.
{ },s

R

Daniel, eu estava seguindo o exemplo do livro Java EE 7 Development with WildFly Paperback – 2015 by Michal Cmil (Author), Michal Matloka (Author), Francesco Marchioni (Author)

vou tentar do jeito que vc disse, mas de qualquer forma preciso saber porque deu errado!

D

Deu errado por voce ja criou o datasource diretamente no XML.

D

No livro o autor demonstra as duas maneira de criar um dataSource.

G

@Rafael_Nascimento,
Resolvi amigo, o problema no meu é no módulo: usa a versão 1.0 ao invés da 1.1.

C

Estou com um erro parecido…

Unexpected HTTP response: 500

Request

{

address => [

(subsystem => datasources),

(data-source => DesafioDS)   ],

operation => test-connection-in-pool

}

Response

Internal Server Error
{
    "outcome" => "failed",
    "failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0047: Connection is not valid",
    "rolled-back" => true
}

O data source

<datasources>
        <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
            <driver>h2</driver>
            <security>
                <user-name>sa</user-name>
                <password>sa</password>
            </security>
        </datasource>
<datasource jta="false" jndi-name="java:jboss/datasources/DesafioDS" pool-name="DesafioDS"  enabled="true">
        <connection-url>jdbc:postgresql://localhost:5432/desafio</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<security>
    <user-name>root</user-name>
            <password>root</password>
</security>
<driver name="h2" module="com.h2database.h2">
                <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
            </driver>
        </drivers>
    </datasources>

MODULE

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

A sua resposta me ajudou também, abraços!

G

Que bom, abraços

Criado 5 de setembro de 2017
Ultima resposta 24 de mai. de 2018
Respostas 8
Participantes 5