【发布时间】:2017-10-15 09:19:51
【问题描述】:
我正在使用基于 spring 4 注释的配置,并且想设置一个简单的 telnet/socket 客户端。
这是我目前所拥有的:
@MessageEndpoint
public class MySocket {
@Bean
public TcpConnectionFactoryFactoryBean clientFactory() {
TcpConnectionFactoryFactoryBean fact = new TcpConnectionFactoryFactoryBean();
fact.setType("client");
fact.setHost(host);
fact.setPort(port);
fact.setUsingNio(true);
fact.setSingleUse(true);
fact.setSoTimeout(timeout);
return fact;
}
@Bean
public MessageChannel clientChannel() {
return new DirectChannel();
}
@Bean
@ServiceActivator(inputChannel = "clientChannel")
public TcpOutboundGateway outGateway(TcpNioClientConnectionFactory factory,
@Qualifier("clientChannel") MessageChannel clientChannel) throws Exception {
TcpOutboundGateway gate = new TcpOutboundGateway();
gate.setConnectionFactory(factory);
gate.setReplyChannel(clientChannel);
return gate;
}
}
@Component
public class MyMessageService {
@Autowired
@Qualifier("clientChannel")
private MessageChannel clientChannel;
public void run() {
Message<String> msg = MessageBuilder.withPayload("test").build();
Message<?> rsp = new MessagingTemplate(clientChannel).sendAndReceive(msg);
}
}
结果:org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers
我在这里缺少什么来通过套接字发送消息并接收回复?
【问题讨论】:
标签: java spring sockets spring-integration