当我尝试与非React性的方法如下,我能够获得连接没有任何问题.
spring.datasource.url=jdbc:sqlserver://AAAAA1011.na.app.corp\\bbbb;databaseName=mydb;integratedSecurity=true;authenticationScheme=JavaKerberos
但是,当我尝试与ReactR2dbc与MsSql服务器的方法如下,然后我面临异常,下面是代码:
@Bean
@Override
public ConnectionFactory connectionFactory() {
ConnectionFactory connectionFactory = ConnectionFactories.get(ConnectionFactoryOptions.builder()
.option(ConnectionFactoryOptions.DRIVER, "mssql")
.option(ConnectionFactoryOptions.HOST, "AAAAA1011.na.app.corp/bbbb")
.option(ConnectionFactoryOptions.DATABASE, "mydb")
.option(ConnectionFactoryOptions.USER, "NA\\user")
.option(Option.valueOf("integratedSecurity"), true)
.option(Option.valueOf("authenticationScheme"), "JavaKerberos")
.build());
return connectionFactory;
}`
异常堆栈跟踪:
org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.r2dbc.spi.ConnectionFactory]: Factory method 'connectionFactory' threw exception; nested exception is java.lang.IllegalStateException: Unable to create a ConnectionFactory for 'ConnectionFactoryOptions{options={database=mydb, host=AAAAA1011.na.app.corp/bbbb, driver=mssql, authenticationScheme=JavaKerberos, integratedSecurity=true, user=NA\user}}'. Available drivers: [ pool, sqlserver ]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.23.jar:5.3.23]
我也找到了这个链接:https://github.com/r2dbc/r2dbc-mssql/issues/101
,提到r2dbc似乎不支持Kerberos,但那是2019年写的,现在已经3年了,不确定上面是否有效。
如果有人知道上述问题,你能帮我解决吗
1条答案
按热度按时间g52tjvyc1#
根据异常信息,连接问题是由驱动程序设置引起的。
可用驱动程序:[池,SQL服务器]
尝试将
.option(ConnectionFactoryOptions.DRIVER, "mssql")
更改为以下内容:我对R2 dbc/MSSQL中的Kerberos支持知之甚少,请根据官方文档更新自己。