Я пытаюсь построить систему, создавая базу микросервисов на spring-cloud .См (https://spring.io/blog/2015/07/14/microservices-with-spring)Я обновляю что-то новое:
приложение 1: (http://localhost:3333/accounts)Тело запроса:
{
"id":"123",
"number":"223",
"owner":"888",
"balance":"100"
}
-WebAccountsController.java
@PostMapping(value = "/accounts")
public void insertAccount(@RequestBody Account account){
accountsService.createAccount(account);
}
-WebAccountsService.java
@Transactional(rollbackFor = NullPointerException.class)
public void createAccount(Account account) {
try {
account.setOwner(account.getOwner()+System.currentTimeMillis()%1000);
HttpEntity<Account> request = new HttpEntity<Account>(account);
System.out.println("==================="+account.getOwner());
String url=serviceUrl + "/create-accounts";
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
String s = null;
s.equalsIgnoreCase("asa");
} catch (NullPointerException e) {
throw e;
}
}
приложение 2: ((http://localhost:2222/create-accounts)
-AccountsController.java
@PostMapping(value = "/create-accounts")
@Transactional(rollbackFor = Exception.class)
public void createAccount(@RequestBody Account account) throws Exception {
try {
logger.info("========================================================= " + account.getOwner());
accountRepository.save(account);
logger.info("accounts-service byNumber() found: " + account);
} catch (Exception e) {
throw e;
}
}
Как выполнить откат данных в тестовом случае, еслиесть исключение?в WebAccountsService.java (приложение 1) после вызова веб-приложения 2 API произошло исключение.Как я могу откатить результат от вызова api create-account, который принадлежит application2 (запись, созданная в предыдущем процессе, будет удалена)?У тебя тоже попробуй запустить (https://github.com/haipv2/microservices-demo-master)
Спасибо !!!