Drivers JDBC do WildFly 18.0.1: Erro interno (newValue é nulo)

17

Estou com um problema ao configurar drivers JDBC no WildFly (18.0.1) .

Sempre que eu abro (Configuração / Subsistemas / Fontes de Dados e Drivers / Drivers JDBC) ,

Eu recebo:

Erro interno (Detalhes: newValue é nulo).

Imagem de erro 1:

Imagem de erro 2:

Qualquer ajuda seria muito bem vinda!

ayou392
fonte
Existe algo nos logs do servidor (normalmente em standalone / log / server.log na sua instalação do Wildfly)?
Stdunbar 28/11/19
Não há nada nos arquivos de log que indique um problema. Também nada muda depois que eu recebo o erro no arquivo de log.
ayou392
Eu tenho o mesmo problema e não faço ideia do porquê. Instalei a versão 18.0.1_Final e 16.0.0_Final, mas o mesmo problema. Você já encontrou uma solução?
Paigeola 12/12/19

Respostas:

3

Eu posso reproduzir seu problema completamente. Não uso o console Wildfly há algum tempo, mas isso me parece um bug. No entanto, existe outra maneira que tem a vantagem de ser facilmente repetível e programável.

Se você executar a jboss-clipartir do diretório bin Wildfly, poderá adicionar um driver JDBC e uma fonte de dados JEE com um script. Meu script se parece com:

embed-server --server-config=standalone.xml --std-out=echo

batch

module add --name=org.postgres --resources=${user.home}/Downloads/postgresql-42.2.8.jar --dependencies=javax.api,javax.transaction.api

/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)


/subsystem=datasources/data-source=myDS/:add(connection-url=jdbc:postgresql://localhost:5432/dbname,driver-name=postgres,jndi-name=java:/jdbc/myDS,background-validation=true,background-validation-millis=60000,blocking-timeout-wait-millis=2000,flush-strategy=Gracefully,idle-timeout-minutes=5,initial-pool-size=4,max-pool-size=64,min-pool-size=4,password=the-password,query-timeout=10,track-statements=true,tracking=true,user-name=the-user,validate-on-match=false)

run-batch

Este script deve ser executado sem o servidor em execução. Se você gostaria de executá-lo enquanto o servidor estiver em execução, em seguida, remover os embed-server, batche run-batchlinhas. Basicamente, isso começa com a criação de um módulo que, neste caso, é um driver do PostgreSQL. Em seguida, ele adiciona um driver JDBC e, finalmente, um DataSource. Pode ser executado com:

jboss-cli.sh --file=the-file-name.cli

supondo que você salvou o item acima em um arquivo chamado the-file-name.cli. Novamente, o bindiretório do Wildfly precisa estar no seu caminho para executá-lo na linha de comando.

stdunbar
fonte
Trabalhou para mim, obrigado!
Paigeola 12/12/19
9

Este não é um problema do wildfly / jboss. O bug está no console do Hal Management (versão 3.2.1). Corrijo esse erro, alterando a versão do console HAL para 3.2.4.

  1. Download da versão:
wget https://repository.jboss.org/nexus/content/repositories/ea/org/jboss/hal/hal-console/3.2.4.Final/hal-console-3.2.4.Final-resources.jar
  1. Copie o arquivo jar para o diretório wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Edite o arquivo module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Alterar versão no arquivo module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Reinicie o jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart
Daniel Xavier Oliveira
fonte
3
O arquivo do github parece não conter a pasta de destino, apenas o código-fonte. Portanto, construímos esse projeto maven ou extraímos um jar do console de outro lugar, por exemplo, um WildFly 19 beta.
T-Gergely
11
Etapa 1a. - instale o maven, o aplicativo de CD, o pacote mvn (aguarde e copie o jar)
David O'Meara
Esqueci de incluir a etapa de compilação do src. Vou acrescentar isso na minha resposta
Daniel Xavier Oliveira
11
Outra coisinha: reiniciar o servidor não é suficiente, você precisa forçar a atualização do cache do navegador ^ _ ^ '
Giampaolo
0

Use este link, how_to_setup_postgresql_datasource_with_wildfly . Isso resolverá seu problema de maneiras alternativas.

Edição do arquivo de configuração (só ida)

Standalone.xml é o arquivo de configuração do servidor. O console de gerenciamento é apenas uma interface amigável para editar este arquivo.

Implemente o driver JDBC

  • Abra um explorador de arquivos e acesse o diretório / modules / no diretório de instalação do Wildfly .
  • Crie pastas / org / postgresql / main /. Essas pastas precisam corresponder ao pacote de hierarquia do driver JDBC.
  • Copie o driver JDBC no diretório 'principal' que você criou. Nesse diretório, crie um arquivo "module.xml" com este

        <resources>
            <resource-root path="postgresql-42.2.1.jar"/>
            <!-- Make sure this matches the name of the JAR you are installing -->
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
        </dependencies>
    </module>

Crie a fonte de dados - Vá para o diretório / standalone / configuration no diretório de instalação do Wildfly. - Abra standalone.xml (é o arquivo de configuração padrão usado pelo servidor independente) - Pesquise 'fonte de dados' para ir para a parte correta. - No elemento, você precisa adicionar ambos para PostgreSQL e

É necessário reiniciar o Wildfly e você pode validar sua alteração testando a conexão no console de gerenciamento.

<drivers>
    <driver name="postgresql" module="org.postgresql">
        <!-- for xa datasource -->
        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
        <!-- for non-xa datasource -->
        <driver-class>org.postgresql.Driver</driver-class>
    </driver>
</drivers>
<datasources>
    <datasource jndi-name="java:jboss/datasources/StemoDS" pool-name="StemoDS" enabled="true" use-java-context="true">
        <connection-url>jdbc:postgresql://localhost:5432/StemoDS</connection-url>
        <driver>postgresql</driver>
        <security>
            <user-name>postgres</user-name>
            <password>admin</password>
        </security>
    </datasource>
</datasources>

Outra maneira de usar o Wildfly CLI (2 vias)

A outra maneira de adicionar fonte de dados é usar a interface da linha do console (CLI). Novamente, o processo é dividido em duas etapas.

Implemente o driver JDBC - Vá para o diretório / bin no diretório de instalação do Wildfly. - Abra um terminal neste diretório e execute

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Para instalar o módulo, execute este comando

    módulo add --name = org.postgresql --resources = / tmp / postgresql-42.2.1.jar --dependencies = javax.api, javax.transaction.api

  • Criar a fonte de dados A criação do driver é feita com este comando

    /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)

  • E então, o último comando para adicionar a fonte de dados

    fonte de dados add --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- name = postgres --password = admin

Você pode validar sua alteração testando a conexão no console de gerenciamento.

neha yadav
fonte
0

Eu tive o mesmo problema, mas a solução que eu fiz foi criar um usuário do console com senha usando caracteres alfanuméricos e 1 não alfanuméricos.

  1. execute o servidor wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. pressione a se console do gerenciador
  4. nome de usuário: admin ou digite seu nome de usuário desejado
  5. pressione um usuário administrador de atualização
  6. senha: por exemplo, p @ ssword1 ou sua senha com 1 caractere não alfanumérico
  7. repassword: a mesma senha que você usou
  8. entrar
  9. não e entre

e, finalmente, use um navegador diferente do chrome

Configurar usuário com senha sem 1 caractere não alfanumérico

Configurar usuário com senha com 1 caractere não alfanumérico

Esteban Vallejo
fonte
o último passo, limpe o histórico do navegador
Esteban Vallejo