[英]Failed to publish TcpConnectionOpenEvent Or TcpConnectionOpenEvent, Dispatcher failed to deliver Message
[英]No publisher available to publish TcpConnectionOpenEvent / TcpConnectionCloseEvent
我用 Spring 集成的 Java DSL 配置了 TCP 客戶端。 看起來像這樣
@Bean
public TcpSendingMessageHandler tcpClient()
{
return Tcp
.outboundAdapter(
Tcp.nioClient("localhost", 9060)
.deserializer(new ByteArrayLfSerializer())
.soKeepAlive(false)
.leaveOpen(false)
.taskExecutor(Executors.newSingleThreadExecutor())
.get()
)
.clientMode(false)
.get();
}
我在服務中使用它向客戶端連接到的 TCP 套接字發送消息:
@Slf4j
@Service
public class TcpClientConnectionService
{
private final TcpSendingMessageHandler messageHandler;
@Autowired
public TcpClientConnectionService(final TcpSendingMessageHandler messageHandler)
{
this.messageHandler = messageHandler;
this.messageHandler.start();
}
public void sendMessage(final String message)
{
messageHandler.handleMessage(new GenericMessage<>(message));
log.debug("Message: " + message + " send");
}
}
但是在生產中,我經常收到以下警告,我不知道問題是什么以及如何解決它。
osiitcp.connection.TcpNioConnection:沒有發布者可用於發布 TcpConnectionOpenEvent
如果有人可以幫助我,那就太好了,因為我無法通過谷歌搜索找到任何東西。
嵌套工廠未正確初始化,因為您在規范上錯誤地調用了.get()
,這破壞了 Spring 初始化。
我用 Spring 集成的 Java DSL 配置了 TCP 客戶端。 看起來像這樣
@Bean
public TcpSendingMessageHandler tcpClient()
{
return Tcp
.outboundAdapter(
Tcp.nioClient("localhost", 9060)
.deserializer(new ByteArrayLfSerializer())
.soKeepAlive(false)
.leaveOpen(false)
.taskExecutor(Executors.newSingleThreadExecutor()))
.clientMode(false)
.get();
}
或者將工廠定義移動到頂級@Bean
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.