gpt4 book ai didi

java - 使用 postgresql 连接到 Wildfly 上的数据库时出现问题

转载 作者:行者123 更新时间:2023-12-01 18:30:44 24 4
gpt4 key购买 nike

我在使用 postgresql 连接到 Wildfly 上的数据库时遇到问题,并且在 Red Hat Core Studio 中编写。
我的standalone.xml是:

<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:jboss/datasources/tvTutorial" pool-name="tvTutorial" enabled="true" statistics-enabled="true">
<connection-url>jdbc:postgresql//localhost:5432/tvTutorial</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<connection-property name="url">
jdbc:postgresql//localhost:5432/tvTutorial
</connection-property>
<driver>NewPestsList-1.0.war</driver>
<security>
<user-name>user</user-name>
<password>password</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
...
</deployment>
</deployments>
</server>

我的 persistence.xml 是:

<!DOCTYPE xml>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="NewPestsList">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name='javax.persistence.jdbc.driver'
value='org.postgresql.Driver' />
<property name='javax.persistence.jdbc.url'
value='jdbc:postgresql//localhost:5432/tvTutorial' />
<property name='javax.persistence.jdbc.user'
value='user' />
<property name='javax.persistence.jdbc.password'
value='password' />
<property name='hibernate.dialect'
value='org.hibernate.dialect.PostgreSQLDialect' />
<property name='hibernate.connection.shutdown' value='true' />
<property name='hibernate.show_sql' value='false' />
<property name='hibernate.format_sql' value='false' />
<property name="hibernate.case.use_query_cache"
value="false" />
</properties>
</persistence-unit>
</persistence>

当我进入wildfly HAL管理时

console/configuration/subsystems/datasources&drivers/JDBC Drivers/

我看到两个 JDBC 驱动程序:

"NewPestsList-1.0.war""NewPestsList-1.0.war_org.postgresql.Driver_42_2"如图所示 two war files我的日志是:

16:10:55,949 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0010: Unbound data source [java:jboss/datasources/tvTutorial]
16:10:55,949 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0019: Stopped Driver service with driver-name = NewPestsList-1.0.war_org.postgresql.Driver_42_2
16:10:55,950 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 76) WFLYUT0022: Unregistered web context: '/NewPestsList-1.0' from server 'default-server'
16:10:55,951 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-6) WFLYJCA0019: Stopped Driver service with driver-name = NewPestsList-1.0.war
16:10:55,995 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0011: Stopping Persistence Unit (phase 2 of 2) Service 'NewPestsList-1.0.war#NewPestsList'
16:10:55,998 INFO [org.hibernate.orm.beans] (ServerService Thread Pool -- 92) HHH10005004: Stopping BeanContainer : org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl@1145c435
16:10:55,999 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0011: Stopping Persistence Unit (phase 1 of 2) Service 'NewPestsList-1.0.war#NewPestsList'
16:10:56,054 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0028: Stopped deployment NewPestsList-1.0.war (runtime-name: NewPestsList-1.0.war) in 105ms
16:10:56,054 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0013: Operation ("composite") failed - address: ([]) - failure description: "WFLYCTL0441: Operation has resulted in failed or missing services
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.NewPestsList-1_0_war (missing) dependents: [service jboss.driver-demander.java:jboss/datasources/tvTutorial, service org.wildfly.data-source.tvTutorial]
WFLYCTL0448: 2 additional services are down due to their dependencies being missing or failed"
16:10:56,085 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0009: Undeployed "NewPestsList-1.0.war" (runtime-name: "NewPestsList-1.0.war")
16:10:56,085 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) WFLYCTL0183: Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.NewPestsList-1_0_war (missing) dependents: [service jboss.driver-demander.java:jboss/datasources/tvTutorial, service org.wildfly.data-source.tvTutorial]
WFLYCTL0448: 2 additional services are down due to their dependencies being missing or failed
16:11:01,096 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) WFLYDS0004: Found NewPestsList-1.0.war in deployment directory. To trigger deployment create a file called NewPestsList-1.0.war.dodeploy
16:11:01,102 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "NewPestsList-1.0.war" (runtime-name: "NewPestsList-1.0.war")
16:11:02,321 INFO [org.jboss.as.jpa] (MSC service thread 1-3) WFLYJPA0002: Read persistence.xml for NewPestsList
16:11:02,415 INFO [org.jboss.weld.deployer] (MSC service thread 1-1) WFLYWELD0003: Processing weld deployment NewPestsList-1.0.war
16:11:02,430 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'NewPestsList-1.0.war#NewPestsList'
16:11:02,431 INFO [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool -- 92) HHH000204: Processing PersistenceUnitInfo [
name: NewPestsList
...]
16:11:02,720 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 42.2)
16:11:02,721 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 42.2)
16:11:02,721 WARN [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0003: Unable to instantiate driver class "org.postgresql.Driver": org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.NewPestsList-1_0_war_org_postgresql_Driver_42_2 is already registered
16:11:02,737 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-5) WFLYJCA0018: Started Driver service with driver-name = NewPestsList-1.0.war
16:11:02,737 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-7) WFLYJCA0018: Started Driver service with driver-name = NewPestsList-1.0.war_org.postgresql.Driver_42_2
16:11:02,739 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) WFLYJCA0001: Bound data source [java:jboss/datasources/tvTutorial]
16:11:02,747 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0010: Starting Persistence Unit (phase 2 of 2) Service 'NewPestsList-1.0.war#NewPestsList'
16:11:02,748 INFO [org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 92) HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
16:11:02,755 INFO [org.hibernate.type.BasicTypeRegistry] (ServerService Thread Pool -- 92) HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@74330d99
16:11:02,757 INFO [org.hibernate.envers.boot.internal.EnversServiceImpl] (ServerService Thread Pool -- 92) Envers integration enabled? : true
16:11:02,970 WARN [org.jboss.weld.Bootstrap] (MSC service thread 1-2) WELD-000146: BeforeBeanDiscovery.addAnnotatedType(AnnotatedType<?>) used for class com.sun.faces.flow.FlowDiscoveryCDIHelper is deprecated from CDI 1.1!
16:11:02,970 INFO [io.smallrye.metrics] (MSC service thread 1-2) MicroProfile: Metrics activated
16:11:03,146 INFO [javax.enterprise.resource.webcontainer.jsf.config] (ServerService Thread Pool -- 92) Initializing Mojarra 2.3.9.SP02 for context '/NewPestsList-1.0'
16:11:04,491 INFO [org.primefaces.webapp.PostConstructApplicationEventListener] (ServerService Thread Pool -- 92) Running on PrimeFaces 7.0
16:11:04,502 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 92) WFLYUT0021: Registered web context: '/NewPestsList-1.0' for server 'default-server'
16:11:04,546 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0010: Deployed "NewPestsList-1.0.war" (runtime-name : "NewPestsList-1.0.war")
16:11:04,546 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) WFLYCTL0183: Service status report
WFLYCTL0185: Newly corrected services:
service jboss.data-source.reference-factory.tvTutorial (new available)
service jboss.jdbc-driver.NewPestsList-1_0_war (new available)
service org.wildfly.data-source.tvTutorial (new available)

我感觉这与此有关,但由于我是编程新手,我不确定是否应该添加更多数据,请告诉我。

编辑:我在 stdunbar 和 Will T 的帮助下更新了我的程序。仍需学习如何重新安装 Wildfly。现在我收到这些警告和错误:

WARN  [org.jboss.as.domain.management.security] (MSC service thread 1-1) WFLYDM0111: Keystore C:\Users\david\wildfly-17.0.0.Final\standalone\configuration\application.keystore not found, it will be auto generated on first use with a self signed certificate for host localhost
WARN [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-5) WFLYJCA0003: Unable to instantiate driver class "org.postgresql.Driver": org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.NewPestsList-1_0_war_org_postgresql_Driver_42_2 is already registered
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "NewPestsList-1.0.war")]) - failure description: {
"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jdbc.tvTutorial"],
"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.persistenceunit.\"NewPestsList-1.0.war#tvTutorialPU\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jdbc.tvTutorial]",
"jboss.persistenceunit.\"NewPestsList-1.0.war#tvTutorialPU\" is missing [jboss.naming.context.java.jdbc.tvTutorial]"

编辑#2:

在我写了正确的地址后它就起作用了 <jta-data-source>jdbc/tvTutorial</jta-data-source>谢谢两位

最佳答案

diver必须作为模块添加,你不能引用你的war部署

本指南适用于 mysql,但过程是相同的,只需使用正确的名称

https://medium.com/@hasnat.saeed/install-and-configure-mysql-jdbc-driver-on-jboss-wildfly-e751a3be60d3

关于java - 使用 postgresql 连接到 Wildfly 上的数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60171433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com