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

31 respostas
C

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

31 Respostas

D

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.

C

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

D

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

A

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.

C

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

A

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

C

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.

A

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

C

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

A

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

C

Show. Abraços !!! :grin:

A

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.

D

@AndersonKiko,

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

A

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.

D

voce chegou a criar o DataSource ?

ou so fez o upload do jar ?

A

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

D

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 .

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

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

A

Fiz o upload do jar do driver do postgre.

D

faz o seguinte, me parece ser um bug do Wildfly 14 e 15.

tem outra opção de criar o DataSource :

use o add XA DataSource com a seguinte configuração :

ServerName=seu ip ou localhost ou algo semelhente
PortNumber=porta do postregsql
DatabaseName=nomedoseubanco

A

Daniel meu amigo o que seria esse security domain?

D

que security domain ?

A

D

meu posta um print da tela. por favor .

D

securiy domain nao precisa .

A

Daniel tô vendo aqui que tenho que declarar o modulo xml. Como eu faço isso?

D

voce so vai criar um module.xml se voce tem tem criado o wildfly/modules/system/layers/base/org/postgresql dentro desta pasta.

então no caso nao teria do por que esta fazendo por interface grafica .

D

essa tela é a que vai dar erro de conexao.

va na tela de ADD XA Datasource

D
D

1

e fazer a sua alteração conforme o exemplo :slight_smile:

Criado 28 de abril de 2016
Ultima resposta 7 de jan. de 2019
Respostas 31
Participantes 4