SSLenabled kafka configuration: Error : no suitable method found in creating map/configuration
SSLenabled kafka configuration: Error : no suitable method found in creating map/configuration
我是 kafka-stream 的新手,我们正在尝试将消息发送到受 SSL 保护的 kafka 主题。
因此,我们在流配置中添加了额外的 SSl-config-properties:
@Configuration
@EnableKafkaStreams
public class KafkaStreamConfig {
@Autowired
private PreferredMediaMsgStreamProperties appProperties;
@Value("${spring.kafka.streams.properties.receive.buffer.bytes}")
private String receiveBufferBytes;
@Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
public KafkaStreamsConfiguration kStreamsConfigs() {
Map<String, Object> props = Map.of(
StreamsConfig.APPLICATION_ID_CONFIG, appProperties.getApplicationId(),
StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, appProperties.getBootstrapServers(),
//configure the following three settings for SSL Encryption
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL",
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/etc/ssl/container/truststore.jks",
SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "changeit",
// configure the following three settings for SSL Authentication
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/etc/ssl/container/server.jks",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, "changeit",
SslConfigs.SSL_KEY_PASSWORD_CONFIG, "changeit",
StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, PreferredMediaMsgStreamProperties.Constants.KEY_SERDE.getClass().getName(),
StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, PreferredMediaMsgStreamProperties.Constants.VALUE_SERDE.getClass().getName(),
StreamsConfig.DEFAULT_TIMESTAMP_EXTRACTOR_CLASS_CONFIG, WallclockTimestampExtractor.class.getName(),
StreamsConfig.RECEIVE_BUFFER_CONFIG, receiveBufferBytes
);
return new KafkaStreamsConfiguration(props);
}
@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = Map.of(
AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, appProperties.getBootstrapServers());
return new KafkaAdmin(configs);
}
}
我在编译期间看到的错误消息是:
error: no suitable method found for of(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
Map<String, Object> props = Map.of(
^
method Map.<K#1,V#1>of() is not applicable
(cannot infer type-variable(s) K#1,V#1
(actual and formal argument lists differ in length))
method Map.<K#2,V#2>of(K#2,V#2) is not applicable
(cannot infer type-variable(s) K#2,V#2
(actual and formal argument lists differ in length))
method Map.<K#3,V#3>of(K#3,V#3,K#3,V#3) is not applicable
(cannot infer type-variable(s) K#3,V#3
(actual and formal argument lists differ in length))
method Map.<K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4) is not applicable
(cannot infer type-variable(s) K#4,V#4
(actual and formal argument lists differ in length))
method Map.<K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5) is not applicable
(cannot infer type-variable(s) K#5,V#5
(actual and formal argument lists differ in length))
method Map.<K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6) is not applicable
(cannot infer type-variable(s) K#6,V#6
(actual and formal argument lists differ in length))
method Map.<K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7) is not applicable
(cannot infer type-variable(s) K#7,V#7
(actual and formal argument lists differ in length))
method Map.<K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8) is not applicable
(cannot infer type-variable(s) K#8,V#8
(actual and formal argument lists differ in length))
method Map.<K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9) is not applicable
(cannot infer type-variable(s) K#9,V#9
(actual and formal argument lists differ in length))
method Map.<K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10) is not applicable
(cannot infer type-variable(s) K#10,V#10
(actual and formal argument lists differ in length))
method Map.<K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11) is not applicable
(cannot infer type-variable(s) K#11,V#11
(actual and formal argument lists differ in length))
where K#1,V#1,K#2,V#2,K#3,V#3,K#4,V#4,K#5,V#5,K#6,V#6,K#7,V#7,K#8,V#8,K#9,V#9,K#10,V#10,K#11,V#11 are type-variables:
K#1 extends Object declared in method <K#1,V#1>of()
V#1 extends Object declared in method <K#1,V#1>of()
K#2 extends Object declared in method <K#2,V#2>of(K#2,V#2)
V#2 extends Object declared in method <K#2,V#2>of(K#2,V#2)
K#3 extends Object declared in method <K#3,V#3>of(K#3,V#3,K#3,V#3)
V#3 extends Object declared in method <K#3,V#3>of(K#3,V#3,K#3,V#3)
K#4 extends Object declared in method <K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4)
V#4 extends Object declared in method <K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4)
K#5 extends Object declared in method <K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5)
V#5 extends Object declared in method <K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5)
K#6 extends Object declared in method <K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6)
V#6 extends Object declared in method <K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6)
K#7 extends Object declared in method <K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7)
V#7 extends Object declared in method <K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7)
K#8 extends Object declared in method <K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8)
V#8 extends Object declared in method <K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8)
K#9 extends Object declared in method <K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9)
V#9 extends Object declared in method <K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9)
K#10 extends Object declared in method <K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10)
V#10 extends Object declared in method <K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10)
K#11 extends Object declared in method <K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11)
V#11 extends Object declared in method <K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11)
Note: /Users/pbose/patrali_sand/notification-preference-stream/src/main/java/com/talentreef/notification/preference/utils/RecipientPoolValueJoiner.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
如果我去掉下面的属性,那么它编译正常:
//configure the following three settings for SSL Encryption
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL",
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/etc/ssl/container/truststore.jks",
SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "changeit",
// configure the following three settings for SSL Authentication
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/etc/ssl/container/server.jks",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, "changeit",
SslConfigs.SSL_KEY_PASSWORD_CONFIG, "changeit",
我可以了解这里发生的事情吗?
Map.of()
有最多 10 个条目的重载(检查 this)。你总共有11个。这就是为什么当你删除其中的 6 个时编译。
如果您希望它起作用,请使用 Map.ofEntries()
。此方法采用可变参数,并且对条目数没有限制。
我是 kafka-stream 的新手,我们正在尝试将消息发送到受 SSL 保护的 kafka 主题。 因此,我们在流配置中添加了额外的 SSl-config-properties:
@Configuration
@EnableKafkaStreams
public class KafkaStreamConfig {
@Autowired
private PreferredMediaMsgStreamProperties appProperties;
@Value("${spring.kafka.streams.properties.receive.buffer.bytes}")
private String receiveBufferBytes;
@Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
public KafkaStreamsConfiguration kStreamsConfigs() {
Map<String, Object> props = Map.of(
StreamsConfig.APPLICATION_ID_CONFIG, appProperties.getApplicationId(),
StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, appProperties.getBootstrapServers(),
//configure the following three settings for SSL Encryption
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL",
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/etc/ssl/container/truststore.jks",
SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "changeit",
// configure the following three settings for SSL Authentication
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/etc/ssl/container/server.jks",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, "changeit",
SslConfigs.SSL_KEY_PASSWORD_CONFIG, "changeit",
StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, PreferredMediaMsgStreamProperties.Constants.KEY_SERDE.getClass().getName(),
StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, PreferredMediaMsgStreamProperties.Constants.VALUE_SERDE.getClass().getName(),
StreamsConfig.DEFAULT_TIMESTAMP_EXTRACTOR_CLASS_CONFIG, WallclockTimestampExtractor.class.getName(),
StreamsConfig.RECEIVE_BUFFER_CONFIG, receiveBufferBytes
);
return new KafkaStreamsConfiguration(props);
}
@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = Map.of(
AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, appProperties.getBootstrapServers());
return new KafkaAdmin(configs);
}
}
我在编译期间看到的错误消息是:
error: no suitable method found for of(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String)
Map<String, Object> props = Map.of(
^
method Map.<K#1,V#1>of() is not applicable
(cannot infer type-variable(s) K#1,V#1
(actual and formal argument lists differ in length))
method Map.<K#2,V#2>of(K#2,V#2) is not applicable
(cannot infer type-variable(s) K#2,V#2
(actual and formal argument lists differ in length))
method Map.<K#3,V#3>of(K#3,V#3,K#3,V#3) is not applicable
(cannot infer type-variable(s) K#3,V#3
(actual and formal argument lists differ in length))
method Map.<K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4) is not applicable
(cannot infer type-variable(s) K#4,V#4
(actual and formal argument lists differ in length))
method Map.<K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5) is not applicable
(cannot infer type-variable(s) K#5,V#5
(actual and formal argument lists differ in length))
method Map.<K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6) is not applicable
(cannot infer type-variable(s) K#6,V#6
(actual and formal argument lists differ in length))
method Map.<K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7) is not applicable
(cannot infer type-variable(s) K#7,V#7
(actual and formal argument lists differ in length))
method Map.<K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8) is not applicable
(cannot infer type-variable(s) K#8,V#8
(actual and formal argument lists differ in length))
method Map.<K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9) is not applicable
(cannot infer type-variable(s) K#9,V#9
(actual and formal argument lists differ in length))
method Map.<K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10) is not applicable
(cannot infer type-variable(s) K#10,V#10
(actual and formal argument lists differ in length))
method Map.<K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11) is not applicable
(cannot infer type-variable(s) K#11,V#11
(actual and formal argument lists differ in length))
where K#1,V#1,K#2,V#2,K#3,V#3,K#4,V#4,K#5,V#5,K#6,V#6,K#7,V#7,K#8,V#8,K#9,V#9,K#10,V#10,K#11,V#11 are type-variables:
K#1 extends Object declared in method <K#1,V#1>of()
V#1 extends Object declared in method <K#1,V#1>of()
K#2 extends Object declared in method <K#2,V#2>of(K#2,V#2)
V#2 extends Object declared in method <K#2,V#2>of(K#2,V#2)
K#3 extends Object declared in method <K#3,V#3>of(K#3,V#3,K#3,V#3)
V#3 extends Object declared in method <K#3,V#3>of(K#3,V#3,K#3,V#3)
K#4 extends Object declared in method <K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4)
V#4 extends Object declared in method <K#4,V#4>of(K#4,V#4,K#4,V#4,K#4,V#4)
K#5 extends Object declared in method <K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5)
V#5 extends Object declared in method <K#5,V#5>of(K#5,V#5,K#5,V#5,K#5,V#5,K#5,V#5)
K#6 extends Object declared in method <K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6)
V#6 extends Object declared in method <K#6,V#6>of(K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6,K#6,V#6)
K#7 extends Object declared in method <K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7)
V#7 extends Object declared in method <K#7,V#7>of(K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7,K#7,V#7)
K#8 extends Object declared in method <K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8)
V#8 extends Object declared in method <K#8,V#8>of(K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8,K#8,V#8)
K#9 extends Object declared in method <K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9)
V#9 extends Object declared in method <K#9,V#9>of(K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9,K#9,V#9)
K#10 extends Object declared in method <K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10)
V#10 extends Object declared in method <K#10,V#10>of(K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10,K#10,V#10)
K#11 extends Object declared in method <K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11)
V#11 extends Object declared in method <K#11,V#11>of(K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11,K#11,V#11)
Note: /Users/pbose/patrali_sand/notification-preference-stream/src/main/java/com/talentreef/notification/preference/utils/RecipientPoolValueJoiner.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
如果我去掉下面的属性,那么它编译正常:
//configure the following three settings for SSL Encryption
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL",
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/etc/ssl/container/truststore.jks",
SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "changeit",
// configure the following three settings for SSL Authentication
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/etc/ssl/container/server.jks",
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, "changeit",
SslConfigs.SSL_KEY_PASSWORD_CONFIG, "changeit",
我可以了解这里发生的事情吗?
Map.of()
有最多 10 个条目的重载(检查 this)。你总共有11个。这就是为什么当你删除其中的 6 个时编译。
如果您希望它起作用,请使用 Map.ofEntries()
。此方法采用可变参数,并且对条目数没有限制。