WildFly 18.0.1 ไดรเวอร์ JDBC: ข้อผิดพลาดภายใน (newValue เป็นโมฆะ)


17

ฉันมีปัญหาการกำหนดค่าไดรเวอร์ JDBC ในWildFly (18.0.1)

เมื่อใดก็ตามที่ฉันเปิด(การกำหนดค่า / ระบบย่อย / แหล่งข้อมูลและไดรเวอร์ / ไดรเวอร์ JDBC) ,

ฉันเข้าใจ:

ข้อผิดพลาดภายใน (รายละเอียด: newValue เป็นค่าว่าง)

ภาพข้อผิดพลาด 1:

รูปภาพข้อผิดพลาด 2:

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!


มีอะไรในบันทึกของเซิร์ฟเวอร์ (โดยปกติเป็นแบบสแตนด์อโลน / log / server.log ภายใต้ Wildfly ของคุณติดตั้ง)?
stdunbar

ไม่มีสิ่งใดในไฟล์บันทึกที่ระบุถึงปัญหา ไม่มีอะไรเปลี่ยนแปลงหลังจากฉันได้รับข้อผิดพลาดในไฟล์บันทึก
ayou392

ฉันมีปัญหาเดียวกันและไม่รู้ว่าทำไม ฉันติดตั้งเวอร์ชัน 18.0.1_Final และ 16.0.0_Final แล้ว แต่เป็นปัญหาเดียวกัน คุณพบวิธีแก้ปัญหาแล้ว?
Paigeola

คำตอบ:


3

ฉันสามารถทำซ้ำปัญหาของคุณได้อย่างสมบูรณ์ ฉันไม่ได้ใช้คอนโซล Wildfly ในบางครั้ง แต่ดูเหมือนว่าเป็นข้อบกพร่องสำหรับฉัน อย่างไรก็ตามมีวิธีอื่นที่มีข้อได้เปรียบในการทำซ้ำและเขียนสคริปต์ได้ง่าย

หากคุณเรียกใช้jboss-cliจากไดเรกทอรีถังขยะ Wildfly คุณสามารถเพิ่มไดรเวอร์ 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, batchและrun-batchสาย โดยทั่วไปจะเริ่มต้นด้วยการสร้างโมดูลซึ่งในกรณีนี้คือไดรเวอร์ PostgreSQL จากนั้นเพิ่มไดรเวอร์ JDBC และสุดท้ายคือแหล่งข้อมูล มันสามารถทำงานได้ด้วย:

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

the-file-name.cliสมมติว่าคุณบันทึกไว้ด้านบนเพื่อไฟล์ชื่อ อีกครั้งbinไดเรกทอรีสำหรับ Wildfly ต้องอยู่ในเส้นทางของคุณเพื่อเรียกใช้สิ่งนี้ในบรรทัดคำสั่ง


ทำงานให้ฉันขอบคุณ!
Paigeola

9

นี่ไม่ใช่ปัญหาของ 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

3
ไฟล์เก็บถาวร github ดูเหมือนจะไม่มีโฟลเดอร์เป้าหมายมีเพียงซอร์สโค้ดเท่านั้น ดังนั้นเราจึงสร้างโครงการ maven นั้นหรือแยกคอนโซล jar จากที่อื่นเช่น WildFly 19 beta
T-Gergely

1
ขั้นตอนที่ 1a - ติดตั้ง maven, แอพ cd, แพ็คเกจ mvn (จากนั้นรอ, จากนั้นคัดลอกไห)
David O'Meara

ฉันลืมที่จะรวมขั้นตอนในการรวบรวม src ฉันจะเพิ่มสิ่งนี้ในคำตอบของฉัน
Daniel Xavier Oliveira

URL ที่ถูกต้องคือrepository.jboss.org/nexus/content/repositories/ea/org/jboss/
......

1
อีกสิ่งเล็กน้อย: การรีสตาร์ทเซิร์ฟเวอร์ไม่เพียงพอคุณต้องบังคับให้รีเฟรชแคชของเบราว์เซอร์ ^ _ ^ '
Giampaolo


0

ใช้ลิงก์นี้how_to_setup_postgresql_datasource_with_wildflyซึ่งจะช่วยแก้ปัญหาของคุณในรูปแบบอื่น

ไฟล์กำหนดค่ารุ่น (ทางเดียว)

Standalone.xml เป็นไฟล์กำหนดค่าสำหรับเซิร์ฟเวอร์ คอนโซลการจัดการเป็นเพียง UI ที่ใช้งานง่ายเพื่อแก้ไขไฟล์นี้

ปรับใช้ไดรเวอร์ JDBC

  • เปิดไฟล์ explorer และไปที่ / modules / directory ใน ไดเรกทอรีการติดตั้งWildflyของคุณ
  • สร้างโฟลเดอร์ / 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.xml (เป็นไฟล์กำหนดค่าเริ่มต้นที่ใช้โดยเซิร์ฟเวอร์แบบสแตนด์อโลน) - ค้นหา 'แหล่งข้อมูล' เพื่อไปยังส่วนที่ถูกต้อง - ในองค์ประกอบคุณต้องเพิ่มทั้งสำหรับ 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 ทาง)

อีกวิธีหนึ่งในการเพิ่มแหล่งข้อมูลคือการใช้ console line interface (CLI) อีกครั้งกระบวนการแบ่งออกเป็นสองขั้นตอน

ปรับใช้ไดรเวอร์ JDBC - ไปที่ไดเร็กทอรี / bin ในไดเร็กทอรีการติดตั้ง Wildfly ของคุณ - เปิดเทอร์มินัลในไดเรกทอรีนี้และเรียกใช้

  ./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 - การพึ่งพา = 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)

  • จากนั้นคำสั่งสุดท้ายเพื่อเพิ่มแหล่งข้อมูล

    data-source เพิ่ม --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo - ผู้ดึงข้อมูล - = - ชื่อผู้ใช้ name = postgres --password = admin

คุณสามารถตรวจสอบการเปลี่ยนแปลงของคุณได้โดยการทดสอบการเชื่อมต่อในคอนโซลการจัดการ


0

ฉันมีปัญหาเดียวกัน แต่วิธีแก้ปัญหาที่ฉันทำคือสร้างผู้ใช้คอนโซลด้วยรหัสผ่านโดยใช้ตัวอักษรและตัวเลขและอักขระที่ไม่ใช่ตัวอักษรและตัวเลข 1 ตัว

  1. เรียกใช้เซิร์ฟเวอร์ wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. กด a ถ้าคอนโซลผู้จัดการ
  4. ชื่อผู้ใช้: ผู้ดูแลระบบหรือป้อนชื่อผู้ใช้ที่คุณต้องการ
  5. กดเพื่ออัพเดตผู้ใช้ admin
  6. รหัสผ่าน: ตัวอย่างเช่น p @ ssword1 หรือรหัสผ่านของคุณด้วยอักขระที่ไม่ใช่ตัวอักษรและตัวเลข 1 ตัว
  7. repassword: รหัสผ่านเดียวกับที่คุณใช้
  8. เข้าสู่
  9. ไม่และเข้า

และในที่สุดก็ใช้เว็บเบราว์เซอร์ที่แตกต่างกันเช่นโครเมี่ยม

กำหนดค่าผู้ใช้ด้วยรหัสผ่านโดยไม่มีอักขระที่ไม่ใช่ตัวอักษรและตัวเลข 1 ตัว

กำหนดค่าผู้ใช้ด้วยรหัสผ่านที่มีอักขระที่ไม่ใช่ตัวเลข 1 ตัว


ขั้นตอนสุดท้ายล้างประวัติเว็บเบราว์เซอร์
Esteban Vallejo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.