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?
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
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!
Deu errado por voce ja criou o datasource diretamente no XML.
No livro o autor demonstra as duas maneira de criar um dataSource.
@Rafael_Nascimento,
Resolvi amigo, o problema no meu é no módulo: usa a versão 1.0 ao invés da 1.1.
1 curtida
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>
A sua resposta me ajudou também, abraços!