[java] WildFly 18.0.1 JDBC 드라이버 : 내부 오류 (newValue가 널임)

WildFly (18.0.1) 에서 JDBC 드라이버를 구성하는 데 문제가 있습니다 .

때마다 나는 열 (구성 / 서브 시스템 / 데이터 소스 및 드라이버 / JDBC 드라이버) ,

나는 얻다:

내부 오류 (세부 사항 : newValue가 널임)

오류 이미지 1 :

오류 이미지 2 :

어떤 도움이라도 대단히 감사하겠습니다!



답변

문제를 완전히 재현 할 수 있습니다. 나는 꽤 오랫동안 Wildfly 콘솔을 사용하지 않았지만 이것은 나에게 버그처럼 보입니다. 그러나 쉽게 반복하고 스크립팅 할 수있는 장점이있는 또 다른 방법이 있습니다.

jboss-cliWildfly bin 디렉토리에서 실행 하는 경우 스크립트를 사용하여 JDBC 드라이버 및 JEE 데이터 소스를 추가 할 수 있습니다. 내 스크립트는 다음과 같습니다

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

이 스크립트는 서버를 실행하지 않고 실행해야합니다. 당신은 서버가 제거 후 실행되는 동안 실행하려는 경우 embed-server, batchrun-batch선. 기본적으로 이것은이 경우 PostgreSQL 드라이버 인 모듈을 만드는 것으로 시작합니다. 그런 다음 JDBC 드라이버와 마지막으로 데이터 소스를 추가합니다. 다음과 같이 실행할 수 있습니다.

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

위의 파일에 위의 파일을 저장했다고 가정합니다 the-file-name.cli. 다시 bin명령 행에서이를 실행하려면 Wildfly 의 디렉토리가 경로에 있어야합니다.


답변

이것은 와일드 플라이 / jboss 문제가 아닙니다. 버그는 Hal 관리 콘솔 (버전 3.2.1)에 있습니다. 이 오류를 수정하여 HAL 콘솔 버전을 3.2.4로 변경했습니다.

  1. 릴리스 다운로드 :
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. jar 파일을 wildfly 디렉토리로 복사
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. module.xml 파일을 편집하십시오.
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. module.xml 파일에서 버전 변경
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. jboss / wildfly를 다시 시작하십시오
sudo systemctl restart wildfly or sudo service wildfly restart


답변

이것은 분명히 알려진 문제 ( https://developer.jboss.org/thread/280649https://issues.redhat.com/browse/WFLY-12642 참조 )이며 다음 릴리스에서 수정 될 예정입니다.


답변

how_to_setup_postgresql_datasource_with_wildfly 링크를 사용하면 다른 방법으로 문제를 해결할 수 있습니다.

구성 파일 버전 (편도)

Standalone.xml은 서버의 구성 파일입니다. 관리 콘솔은이 파일을 쉽게 편집 할 수있는 UI입니다.

JDBC 드라이버 배포

  • 파일 탐색기를 열고 Wildfly
    설치 디렉토리의 / modules / 디렉토리로 이동하십시오 .
  • / org / postgresql / main / 폴더를 만듭니다. 이 폴더는 JDBC 드라이버의 계층 구조 패키지와 일치해야합니다.
  • JDBC 드라이버를 작성한 ‘main’디렉토리에 복사하십시오. 이 디렉토리에서 다음과 같이 “module.xml”파일을 작성하십시오.

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

데이터 소스 작성
-Wildfly 설치 디렉토리의 / standalone / configuration 디렉토리로 이동하십시오. -standalone.xml을여십시오 (독립형 서버에서 사용하는 기본 구성 파일입니다)- ‘datasource’를 검색하여 오른쪽으로 이동하십시오. -요소에서 PostgreSQL 및

Wildfly를 다시 시작해야하며 관리 콘솔에서 연결을 테스트하여 변경 사항을 확인할 수 있습니다.

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

Wildfly CLI를 사용하는 다른 방법 (2 가지 방법)

데이터 소스를 추가하는 다른 방법은 콘솔 라인 인터페이스 (CLI)를 사용하는 것입니다. 다시이 프로세스는 두 단계로 나뉩니다.

JDBC 드라이버 배포-Wildfly 설치 디렉토리의 / bin 디렉토리로 이동하십시오. -이 디렉토리에서 터미널을 열고 실행

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • 모듈을 설치하려면이 명령을 실행하십시오

    모듈 추가 –name = org.postgresql –resources = / tmp / postgresql-42.2.1.jar –dependencies = javax.api, javax.transaction.api

  • 데이터 소스 생성 드라이버 생성은이 명령으로 수행됩니다

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

  • 그런 다음 데이터 소스를 추가하는 마지막 명령

    데이터 소스 추가 –jndi-name = java : jboss / datasources / StenusysDemoDS –name = StenusysDemoDS –connection-url = jdbc : postgresql : // localhost : 5432 / StenusysDemo –driver-name = postgres –user- 이름 = postgres –password = admin

관리 콘솔에서 연결을 테스트하여 변경 사항을 확인할 수 있습니다.


답변

나는 같은 문제가 있었지만 해결책은 영숫자와 영숫자가 아닌 문자를 사용하여 암호로 콘솔 사용자를 만드는 것입니다.

  1. 서버 wildfly phat \ bin \ standalone.bat를 실행하십시오.
  2. wildfly phat \ bin \ add-user.bat
  3. if 관리자 콘솔을 누르십시오
  4. 사용자 이름 : 관리자 또는 원하는 사용자 이름을 입력하십시오
  5. fo 업데이트 관리자를 누르십시오
  6. 비밀번호 : 예 : p @ ssword1 또는 1이 아닌 영숫자가 아닌 비밀번호
  7. 비밀번호 : 사용한 비밀번호
  8. 시작하다
  9. 아니요 입력

마지막으로 크롬과 다른 웹 브라우저를 사용하십시오.

영숫자가 아닌 문자가없는 비밀번호로 사용자 구성

영숫자가 아닌 문자가 1 개인 비밀번호로 구성 사용자


답변