2017-04-25 28 views
-2

我已经广泛地使用了SpringCloudContract。这是非常有效的TDD。我想在实际部署期间验证合同。我有n个微服务(Spring流:源/处理器/接收器),并希望允许用户在数据流服务器仪表板中定义流(kafka)时将它们链接起来。我通过流中的某个对象作为 输入/输出用于微服务。我想检查微服务的兼容性并相应地提醒用户。 SpringCloudContract便于在开发时验证合同,而不是运行时。部署Spring云合同验证

请帮忙。

回答

0

我是新来春云合同,但我已经找到一种方法来启动StubRunner但是当它触发我获得以下证书。

2017年4月26日16:14:10373 INFO主cssContractTester:36 - ContractTester:consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>> >> [email protected]13f156 2017年4月26日16:14:10503 ERROR主osccvmsStreamStubMessages:63 - 同时尝试发送消息时发生异常[GenericMessage [有效载荷= { “名称” : “第一”, “描述”: “有效”, “值”:1},标题= {ID = 49c6cc5c-93c8-2498-934a-175f60f42c03,时间戳= 1493203450482}]],与名称[验证的信道] org.springframework.messaging.MessageDeliveryException:调度程序没有用于通道'application.input'的订阅者。嵌套异常是org.springframework.integration.MessageDispatchingException:分派器没有订阅者,failedMessage = GenericMessage [payload = {“name”:“First”,“description”:“Valid”,“value”:1},headers = {id = 49c6cc5c-93c8-2498-934a-175f60f42c03,时间戳= 1493203450482}] 在org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:93) 在org.springframework.integration.channel.AbstractMessageChannel.send( AbstractMessageChannel.java:423) at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:373) at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.send(StreamStubMessages.java: 60) at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.send(StreamStubMessages.java:

与Maven同样做工精细安装,但不能与主类。

... 
@RunWith(SpringRunner.class) 
@AutoConfigureMessageVerifier 
@EnableAutoConfiguration 
@EnableIntegration 
@Component 
@DirtiesContext 
public class ContractTester { 

private static Logger logger = LoggerFactory.getLogger(ContractTester.class); 
@Autowired StubTrigger stubTrigger; 
@Autowired ConsumerMessageListener consumerMessageListener; 

@Bean 
public boolean validSimpleObject() throws Exception { 
logger.info("ContractTester : consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>>>>"+stubTrigger); 
stubTrigger.trigger("accepted_message"); 
if(consumerMessageListener ==null) { 
logger.info("ContractTester : consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 
} 
logger.info("ContractTester >>>>>>>>>>>>>>>>>>>>>>>>>>>>" +consumerMessageListener.toString()); 
SimpleObject simpleObject = (SimpleObject) consumerMessageListener.getSimpleObject(); 

logger.info("simpleObject >>>>>>>>>>>>>>>>>>>>>>>>>>>>" +simpleObject.toString()); 
     assertEquals(1, simpleObject.getValue());      
     //then(listener.eligibleCounter.get()).isGreaterThan(initialCounter);  
     return true; 
} 
}