Deploy de drive JDBC no WildFly. Onde o jar é salvo?

Pessoal fiz o deploy do jar do postrgreSQL através do console de configuração do wildfly(pelo browser).
Depois fui verificar onde ele salvou este arquivo e se estava na pasta deploy como eu esperava. Para minha surpresa fiz uma pesquisa em todas as pastas do wildfly e não achei qualquer rastro do jar.
Verifiquei que foi criada aconfiguração abaixo no arquivo standalone-full.xml.

<deployments>
    <deployment name="postgresql" runtime-name="postgresql-9.4.1208.jre7.jar">
        <content sha1="368ab5589354e156a2aaa9c3bbb13524d76d0a65"/>
    </deployment>
</deployments>

O Meu datasource está funcionando mas gostaria e saber onde diabos o arquivo fica escondido.

Araços

Aparentemente o jar fica no seu local original, ele não é movido e nem copiado.
caso queira o jar no wildfly voce teria que criar uma pasta em modules contendo o jar e o main.xml com as configurações.

Me ajudando novamente… Daniel é o cara. :slight_smile:

A configuração dos modules eu conheço.

Com relação ao jar ficar na pasta original que foi enviado por upload, eu também pensei nisso.
Só que para fazer a prova renomeei o jar da minha area de trabalho e mesmo assim o dataSource ficou funcionando.

Value Abraços!!!

A minha teoria era essa mesmo da sua. Mas deve ter algo relacionado ao sha1 com esse números e letras.

Ola clebiovieira,
não seria porque você tem uma datasource configurada no standalone.xml que aponta para o driver?

ex:

datasource configurada no standalone.xml

<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>... outras DS


<driver name="h2" module="com.h2database.h2">
    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="postgres" module="com.postgres">
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>........outros drivers

Eu já vi aplicações no passado que faziam assim um deploy do jar(connector) mas eu nunca fiz isso, desde que eu utilizo o jboss isso mesmo antes de ele virar wildfly eu já utilizava a configuração de módulos, se olhar na própria documentação do container ele dizem para usar o CLI para instalar o driver, porém eu faço na mão mesmo como o amigo @Daniel_Dias comentou, pois o arquivo module.xml é bem simples de configurar.

Então… Mas minha dúvida é onde fica o arquivo físico (drivequalquer.jar). Pois imagino que o datasource do wildfly vai utilizar este jar em algum momento para fazer a conexão.
Abraços

Qualquer jar(driver) fica em:

${jboss.home.dir}\modules\system\layers\base

O jar que fez o deploy deve ficar em:

${jboss.home.dir}\standalone\data\content\de\368ab5589354e156a2aaa9c3bbb13524d76d0a65\content

content é um file sem a extensão, se renomear este arquivo para content.jar e abrir ele com algum descompactador tipo winrar vera o conteúdo do seu .jar

1 curtida

Aix… Genial. Você matou a charada. Agora tudo faz sentido.
Obrigado mesmo.

Agora estou com um novo desafio, configurar um módulo com varios jars para ser utilizado pela minha aplicação.

Segui esse tutorial

Mais não funcionou… Você alguma vez já configurou seu pom.xml para usar módulos do wildfly?

Por exemplo, quero colocar o primefaces e outras libs em um módulo.

Ola Clebiovieira,

eu não faço este tipo de coisa nas minhas aplicações, no meu ver isso era para funcionar porém o post é para o jboss As 7.1 EAP alguma modificações irão ter que ocorrer para funcionar no Wildfly, mas a pergunta que fica é: porque fazer assim? Essas libs são bibliotecas de terceiros, levar o jar do database para o container eu penso que é válido já que o mesmo faz o controle das conexões, gerenciamento do Pool, DS etc… mas libs como primefaces e outras libs de terceiros não vejo o menor sentido levar essas dependências para o aplication server. Usar elas como módulos de aplicação é outra história mas deixar como módulos do container é muito ruim, imagina um dia se resolvem trocar o container ou o mesmo não de mais suporte a este tipo de modificação? Um desastre esta por vir, e se o projeto não estiver mais na sua mão?
Hoje quando eu desenvolvo uma aplicação ex: no Wildfly e o cliente me pergunta: roda em outro container? Eu respondo que a aplicação esta apta a ser distribuida e implantada em qualquer container que implemente JavaEE7 basta configurar a datasource e startar a aplicação, agora imagine com esses módulos customizados? você acaba com a abstração, mas é meu ponto vista :slight_smile: se deseja fazer isso

2 curtidas

Entendi sua colocação e realmente concordo com ela. É um caminho perigoso.
Eu perguntei mais por curiosidade, gosto de fuçar as coisas. rs
Quando você falou que usar os jar’s como módulos de aplicação, você quis dizer o que?
Você cria um projeto separado e coloca todos os jar´s dentro, e referencia este projeto no pom.xml dos projetos interessados?

Abraços @aix

exatamente, use e abuse dos scopos do maven :slight_smile: Compile, Provided, Runtime, Import, Test, System.

Show. Abraços !!! :grin:

Daniel meu amigo tô tentando configurar um datasource pra um sistema deployado no wildfly 14 e não consigo, eu já deployei o jar do postgresql e quando ponho a url do banco e o usuário e a senha o wildfly diz que a conexão é invalida.

1 curtida

@AndersonKiko,

por gentileza posta a print do dos passos que você fez .

Meu amigo Daniel eu deployei o driver, no meu caso o postgresql-9.4.1212.jre6.jar, no console de gerenciamento via web e depois armazenei o mesmo driver na pasta /wildfly/modules/system/layers/base/org/postgresql, quando ponho a url do banco e o usuário e a senha tudo ok só que quando vou testar o wildfly diz que a conexão é inválida.

voce chegou a criar o DataSource ?

ou so fez o upload do jar ?

Eu tento criar o datasource só que o wildfly diz que a conexão é inválida.

para mim tambem ficava dando a mesma coisa.

eu tentei varias vezes , até que uma hora ele aceitou a conexao .

aparentemente sua configuraçaõ esta certa .

Daniel meu amigo quando eu tento configurar o datasource pela interface web do Wildfly ele me responde com esse log:
08:45:38,388 WARNING [javax.jmdns.impl.SocketListener] (SocketListener(server-wildfly-ssp-ma-gov-br.local.)) SocketListener(server-wildfly-ssp-ma-gov-br.local.).run() exception : java.io.IOException: DNSIncoming corrupted message
at javax.jmdns.impl.DNSIncoming.(DNSIncoming.java:239)
at javax.jmdns.impl.SocketListener.run(SocketListener.java:50)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1967)
at javax.jmdns.impl.ServiceInfoImpl.decodeQualifiedNameMapForType(ServiceInfoImpl.java:292)
at javax.jmdns.impl.DNSEntry.(DNSEntry.java:47)
at javax.jmdns.impl.DNSQuestion.(DNSQuestion.java:220)
at javax.jmdns.impl.DNSQuestion$Service.(DNSQuestion.java:129)
at javax.jmdns.impl.DNSQuestion.newQuestion(DNSQuestion.java:251)
at javax.jmdns.impl.DNSIncoming.readQuestion(DNSIncoming.java:254)
at javax.jmdns.impl.DNSIncoming.(DNSIncoming.java:202)
… 1 more

Essa mensagem aqui também Daniel meu amigo:
10:29:01,462 ERROR [org.jboss.as.controller.management-operation] (External Management Request Threads – 2) WFLYCTL0013: Operation (“test-connection-in-pool”) failed - address: ([
(“subsystem” => “datasources”),
(“xa-data-source” => “PostgresXADS”)
]) - failure description: “WFLYJCA0040: failed to invoke operation: WFLYJCA0047: Connection is not valid”

, 1‰èÐx65Nu