ฉันสามารถทำซ้ำปัญหาของคุณได้อย่างสมบูรณ์ ฉันไม่ได้ใช้คอนโซล 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 ต้องอยู่ในเส้นทางของคุณเพื่อเรียกใช้สิ่งนี้ในบรรทัดคำสั่ง