Tôi có thể tái tạo vấn đề của bạn hoàn toàn. Tôi đã không sử dụng bảng điều khiển Wildfly trong một thời gian khá lâu nhưng điều này có vẻ như là một lỗi đối với tôi. Tuy nhiên, có một cách khác có lợi thế là dễ lặp lại và có thể viết được.
Nếu bạn chạy jboss-cli
từ thư mục bin Wildfly, bạn có thể thêm trình điều khiển JDBC và nguồn dữ liệu JEE với một tập lệnh. Kịch bản của tôi trông như:
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
Kịch bản này nên được chạy mà không cần máy chủ chạy. Nếu bạn muốn chạy nó trong khi máy chủ đang chạy sau đó loại bỏ embed-server
, batch
và run-batch
dòng. Về cơ bản, điều này bắt đầu bằng cách tạo ra một mô-đun, trong trường hợp này là trình điều khiển PostgreSQL. Sau đó, nó thêm trình điều khiển JDBC và cuối cùng là DataSource. Nó có thể được chạy với:
jboss-cli.sh --file=the-file-name.cli
giả sử rằng bạn đã lưu ở trên vào một tệp có tên the-file-name.cli
. Một lần nữa, bin
thư mục cho Wildfly cần phải nằm trên đường dẫn của bạn để chạy cái này trên dòng lệnh.