Jpa @DataSourceDefinition中的url错误 问题

Jpa @DataSourceDefinition中的url错误 问题,jpa,jakarta-ee,payara,payara-micro,Jpa,Jakarta Ee,Payara,Payara Micro,@DataSourceDefinition提供了url属性,但它将被忽略。如果url设置为jdbc:postgres://database:5432/demo,将建立到localhost:5432的连接。通过直接将它们设置为serverName、portNumber和databaseName,同样的设置效果非常好 演示 可以在以下站点找到一个演示此行为的小演示项目: 细节 工作示例✅ 分别设置属性serverName、portNumber和databaseName。将成功建立与位于数据库5432

@DataSourceDefinition
提供了
url
属性,但它将被忽略。如果url设置为
jdbc:postgres://database:5432/demo
,将建立到
localhost:5432
的连接。通过直接将它们设置为
serverName
portNumber
databaseName
,同样的设置效果非常好

演示 可以在以下站点找到一个演示此行为的小演示项目:

细节 工作示例✅ 分别设置属性
serverName
portNumber
databaseName
。将成功建立与位于
数据库5432
的postgres的连接

@DataSourceDefinition(
name=“java:global/jdbc/DemoDataSource”,
className=“org.postgresql.ds.PGSimpleDataSource”,
serverName=“database”,//设置属性
portNumber=5432,//设置属性
databaseName=“demo”,//设置属性
user=“demo”,
密码=“演示”)
失败的例子❌ 将再次使用工作示例中的相同设置,但这次只设置
url
属性。结果是尝试连接到
localhost:5432
,而不是
数据库:5432

@DataSourceDefinition(
name=“java:global/jdbc/DemoDataSource”,
className=“org.postgresql.ds.PGSimpleDataSource”,
url=“jdbc:postgresql://database:5432/demo“,//仅使用url,不使用服务器名、端口号或数据库名
user=“demo”,
密码=“演示”)

奇怪的例子,感谢使用空参数的解决方法,拯救了我的一天。在我的团队中,我们从外部注入所有值,但从未能够为端口注入这些值,因为字符串将在预期int的位置注入。我们通过组合“url”参数来解决这个问题,但后来不得不面对localhost问题。Payara的人已经在着手解决这个问题:我在web.xml中定义的数据源上也遇到了同样的问题。在重新启动几次后,它实际上可以工作。