我得到错误
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Failed to initialize pool: Communications link failure
当我在构造函数中调用 getHikariPool() 时
@Singleton
@Named("db")
public class ConnectionPool {
private final DataSource hikariDataSource;
private final Configuration config;
@Inject
public ConnectionPool(Configuration config) {
this.config = config;
hikariDataSource = getHikariPool();
}
private DataSource getHikariPool() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl(config.getUrl());
hikariConfig.setUsername(config.getUser());
hikariConfig.setPassword(config.getPassword());
hikariConfig.setDriverClassName(config.getDriver());
hikariConfig.setMaximumPoolSize(4);
hikariConfig.addDataSourceProperty("cachePrepStmts", true);
hikariConfig.addDataSourceProperty("prepStmtCacheSize", 250);
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
return new HikariDataSource(hikariConfig);
}
public DataSource getDataSource() {
return hikariDataSource;
}
@PreDestroy
public void closePool() {
((HikariDataSource) hikariDataSource).close();
}
}
这是整个异常堆栈跟踪。
[#|2023-03-20T20:10:00.673+0000|WARNING|Payara 6.2022.2|jakarta.enterprise.web|_ThreadID=96;_ThreadName=http-thread-pool::http-listener-1(1);_TimeMillis=1679343000673;_LevelValue=900;|
StandardWrapperValve[jakarta.rest.JAXRSApplication]: Servlet.service() for servlet jakarta.rest.JAXRSApplication threw exception
java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:639)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63)
at com.mysql.cj.NativeSession.connect(NativeSession.java:120)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
at config.ConnectionPool.getHikariPool(ConnectionPool.java:36)
at config.ConnectionPool.<init>(ConnectionPool.java:21)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:119)
at org.jboss.weld.injection.ConstructorInjectionPoint.invokeAroundConstructCallbacks(ConstructorInjectionPoint.java:92)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:78)
at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:112)
at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:186)
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:160)
at org.jboss.weld.contexts.AbstractContext.get(AbstractContext.java:96)
at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
at org.jboss.weld.bean.ContextualInstanceStrategy$ApplicationScopedContextualInstanceStrategy.get(ContextualInstanceStrategy.java:140)
MySql 的属性: urlDB: jdbc:mysql://localhost:3306/Correo 用户名:root 密码:root 驱动程序:com.mysql.cj.jdbc.Driver
我已经在 getHikariPool() 中进行了调试,但是错误直到最后才弹出,所以我不知道到底出了什么问题。如果有人知道可能会发生什么,我感谢您的帮助。