使用spring rabbitmq的saslConfig不工作

使用spring rabbitmq的saslConfig不工作,rabbitmq,ssl-certificate,spring-amqp,Rabbitmq,Ssl Certificate,Spring Amqp,我的项目需要SSL身份验证机制是外部的(仅使用SSL证书,避免rabbitmq上的用户名/密码)。对于connectionfactory bean,我们给出了属性name=“saslConfig”value=“DefaultSaslConfig.EXTERNAL”,但我们得到了一个错误:“无法将[java.lang.String]类型的值转换为属性“saslConfig”所需的[com.rabbitmq.client.saslConfig]类型:找不到匹配的编辑器或转换策略。”。我们尝试了其他值

我的项目需要SSL身份验证机制是外部的(仅使用SSL证书,避免rabbitmq上的用户名/密码)。对于connectionfactory bean,我们给出了属性name=“saslConfig”value=“DefaultSaslConfig.EXTERNAL”,但我们得到了一个错误:“无法将[java.lang.String]类型的值转换为属性“saslConfig”所需的[com.rabbitmq.client.saslConfig]类型:找不到匹配的编辑器或转换策略。”。我们尝试了其他值,如value=“com.rabbitmq.client.DefaultSaslConfig.EXTERNAL”和value=“EXTERNAL”,但错误仍然存在。请检查下面的配置和日志,并向我提供您的建议

Bean配置

  <rabbit:connection-factory id="connectionFactory" connection-factory="clientConnectionFactory" host="x.y.z.m" port="5671"/>
    <bean id="clientConnectionFactory" class="org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean">
     <property name="useSSL" value="true" />
     <property name="saslConfig" value=com.rabbitmq.client.DefaultSaslConfig.EXTERNAL"/> 
     <property name="sslPropertiesLocation" value="classpath:/rabbitSSL.properties"/></bean>

EXTERNAL
是一个静态变量,而不是枚举

使用

“#{T(com.rabbitmq.client.DefaultSaslConfig.EXTERNAL}”

这是一个SpEL表达式,使用类型运算符(
T
)获取对静态的引用


以下内容对我有用(来源:):

Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.rabbitmq.client.SaslConfig] for property 'saslConfig': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:306)
at org.springframework.beans.AbstractNestablePropertyAccessor.convertIfNecessary(AbstractNestablePropertyAccessor.java:576)
@PostConstruct
public void init() {
    if (rabbitProperties.getSsl().isEnabled() && rabbitProperties.getSsl().getKeyStore() != null) {
        cachingConnectionFactory.getRabbitConnectionFactory().setSaslConfig(DefaultSaslConfig.EXTERNAL);
    }
}