Commit fea1f7e5 authored by Ali Saeed's avatar Ali Saeed

create second gateway, where each gateway prefer a certain zone

parent 8499fd76
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<module name="replica-invoicing-service" /> <module name="replica-invoicing-service" />
<module name="invoicing-service" /> <module name="invoicing-service" />
<module name="users-service-zone-2" /> <module name="users-service-zone-2" />
<module name="cloud-gateway-zone-2" />
<module name="invoicing-service-zone-2" /> <module name="invoicing-service-zone-2" />
<module name="service-discovery" /> <module name="service-discovery" />
<module name="cloud-gateway" /> <module name="cloud-gateway" />
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
<component name="JavacSettings"> <component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE"> <option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="cloud-gateway" options="-parameters" /> <module name="cloud-gateway" options="-parameters" />
<module name="cloud-gateway-zone-2" options="-parameters" />
<module name="invoicing-service" options="-parameters" /> <module name="invoicing-service" options="-parameters" />
<module name="invoicing-service-zone-2" options="-parameters" /> <module name="invoicing-service-zone-2" options="-parameters" />
<module name="replica-invoicing-service" options="-parameters" /> <module name="replica-invoicing-service" options="-parameters" />
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$PROJECT_DIR$/cloud-gateway-zone-2/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-gateway-zone-2/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-gateway/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-gateway/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-gateway/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-gateway/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/invoicing-service-zone-2/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/invoicing-service-zone-2/src/main/java" charset="UTF-8" />
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.1</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-gateway-zone-2</artifactId>
<name>cloud-gateway-zone-2</name>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-cloud.version>2022.0.0</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>netflix-candidates</id>
<name>Netflix Candidates</name>
<url>https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
\ No newline at end of file
package org.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class CloudGatewayZone2Application {
public static void main(String[] args) {
SpringApplication.run(CloudGatewayZone2Application.class, args);
}
}
server:
port: 9091
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
registerWithEureka: false
preferSameZoneEureka: true
instance:
metadataMap:
zone: latakia
spring:
application:
name: api-gateway-zone-2
cloud:
gateway:
routes:
- id: invoicing-service-damascus-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: replica-invoicing-service-damascus-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: users-service-damascus-zone
uri: lb://users-service
predicates:
- Path=/users/**
- id: invoicing-service-latakia-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: replica-invoicing-service-latakia-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: users-service-latakia-zone
uri: lb://users-service
predicates:
- Path=/users/**
server:
port: 9091
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
registerWithEureka: false
preferSameZoneEureka: true
instance:
metadataMap:
zone: latakia
spring:
application:
name: api-gateway-zone-2
cloud:
gateway:
routes:
- id: invoicing-service-damascus-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: replica-invoicing-service-damascus-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: users-service-damascus-zone
uri: lb://users-service
predicates:
- Path=/users/**
- id: invoicing-service-latakia-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: replica-invoicing-service-latakia-zone
uri: lb://invoicing-service
predicates:
- Path=/invoices/**
- id: users-service-latakia-zone
uri: lb://users-service
predicates:
- Path=/users/**
server: server:
port: 9090 port: 9090
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
registerWithEureka: false
preferSameZoneEureka: true
instance:
metadataMap:
zone: damascus
spring: spring:
application: application:
name: api-gateway name: api-gateway
...@@ -9,36 +18,24 @@ spring: ...@@ -9,36 +18,24 @@ spring:
- id: invoicing-service-damascus-zone - id: invoicing-service-damascus-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/damascus/invoices/** - Path=/invoices/**
filters:
- RewritePath=/damascus/invoices/(?<segment>.+), /invoices/${segment}
- id: replica-invoicing-service-damascus-zone - id: replica-invoicing-service-damascus-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/damascus/invoices/** - Path=/invoices/**
filters:
- RewritePath=/damascus/invoices/(?<segment>.+), /invoices/${segment}
- id: users-service-damascus-zone - id: users-service-damascus-zone
uri: lb://users-service uri: lb://users-service
predicates: predicates:
- Path=/damascus/users/** - Path=/users/**
filters:
- RewritePath=/damascus/users/(?<segment>.+), /users/${segment}
- id: invoicing-service-latakia-zone - id: invoicing-service-latakia-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/latakia/invoices/** - Path=/invoices/**
filters:
- RewritePath=/latakia/invoices/(?<segment>.+), /invoices/${segment}
- id: replica-invoicing-service-latakia-zone - id: replica-invoicing-service-latakia-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/latakia/invoices/** - Path=/invoices/**
filters:
- RewritePath=/latakia/invoices/(?<segment>.+), /invoices/${segment}
- id: users-service-latakia-zone - id: users-service-latakia-zone
uri: lb://users-service uri: lb://users-service
predicates: predicates:
- Path=/latakia/users/** - Path=/users/**
filters:
- RewritePath=/latakia/users/(?<segment>.+), /users/${segment}
\ No newline at end of file
server: server:
port: 9090 port: 9090
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
registerWithEureka: false
preferSameZoneEureka: true
instance:
metadataMap:
zone: damascus
spring: spring:
application: application:
name: api-gateway name: api-gateway
...@@ -9,36 +18,24 @@ spring: ...@@ -9,36 +18,24 @@ spring:
- id: invoicing-service-damascus-zone - id: invoicing-service-damascus-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/damascus/invoices/** - Path=/invoices/**
filters:
- RewritePath=/damascus/invoices/(?<segment>.+), /invoices/${segment}
- id: replica-invoicing-service-damascus-zone - id: replica-invoicing-service-damascus-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/damascus/invoices/** - Path=/invoices/**
filters:
- RewritePath=/damascus/invoices/(?<segment>.+), /invoices/${segment}
- id: users-service-damascus-zone - id: users-service-damascus-zone
uri: lb://users-service uri: lb://users-service
predicates: predicates:
- Path=/damascus/users/** - Path=/users/**
filters:
- RewritePath=/damascus/users/(?<segment>.+), /users/${segment}
- id: invoicing-service-latakia-zone - id: invoicing-service-latakia-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/latakia/invoices/** - Path=/invoices/**
filters:
- RewritePath=/latakia/invoices/(?<segment>.+), /invoices/${segment}
- id: replica-invoicing-service-latakia-zone - id: replica-invoicing-service-latakia-zone
uri: lb://invoicing-service uri: lb://invoicing-service
predicates: predicates:
- Path=/latakia/invoices/** - Path=/invoices/**
filters:
- RewritePath=/latakia/invoices/(?<segment>.+), /invoices/${segment}
- id: users-service-latakia-zone - id: users-service-latakia-zone
uri: lb://users-service uri: lb://users-service
predicates: predicates:
- Path=/latakia/users/** - Path=/users/**
filters:
- RewritePath=/latakia/users/(?<segment>.+), /users/${segment}
\ No newline at end of file
...@@ -24,6 +24,7 @@ public class InvoiceResource { ...@@ -24,6 +24,7 @@ public class InvoiceResource {
Invoice invoice = null; Invoice invoice = null;
try { try {
invoice = ExternalAPI.getInvoiceDetails(invoiceId); invoice = ExternalAPI.getInvoiceDetails(invoiceId);
System.out.println("I am in latakia zone");
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println(invoice.toString()); System.out.println(invoice.toString());
...@@ -37,6 +38,7 @@ public class InvoiceResource { ...@@ -37,6 +38,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){
List<Invoice> inv = new ArrayList<>(); List<Invoice> inv = new ArrayList<>();
inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId); inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId);
System.out.println("I am in latakia zone");
log.info("Got unpaid invoices for user has "+userId+ " userId"); log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("Got unpaid invoices for user has "+userId+ " userId");
return inv; return inv;
...@@ -44,6 +46,7 @@ public class InvoiceResource { ...@@ -44,6 +46,7 @@ public class InvoiceResource {
@PostMapping("/updateInvoiceStatus/{invoiceId}") @PostMapping("/updateInvoiceStatus/{invoiceId}")
public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){ public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){
/* here some logic like get invoice from database and set the status to true */ /* here some logic like get invoice from database and set the status to true */
System.out.println("I am in latakia zone");
log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
return true; return true;
...@@ -52,6 +55,7 @@ public class InvoiceResource { ...@@ -52,6 +55,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoices(){ public List<Invoice> getUnPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getUnPaidInvoices(); invoices = ExternalAPI.getUnPaidInvoices();
System.out.println("I am in latakia zone");
log.info("Got all unpaid invoices"); log.info("Got all unpaid invoices");
System.out.println("Got all unpaid invoices"); System.out.println("Got all unpaid invoices");
return invoices; return invoices;
...@@ -60,6 +64,7 @@ public class InvoiceResource { ...@@ -60,6 +64,7 @@ public class InvoiceResource {
public List<Invoice> getPaidInvoices(){ public List<Invoice> getPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getPaidInvoices(); invoices = ExternalAPI.getPaidInvoices();
System.out.println("I am in latakia zone");
log.info("Got all paid invoices"); log.info("Got all paid invoices");
System.out.println("Got all paid invoices"); System.out.println("Got all paid invoices");
return invoices; return invoices;
......
...@@ -24,9 +24,11 @@ public class InvoiceResource { ...@@ -24,9 +24,11 @@ public class InvoiceResource {
Invoice invoice = null; Invoice invoice = null;
try { try {
invoice = ExternalAPI.getInvoiceDetails(invoiceId); invoice = ExternalAPI.getInvoiceDetails(invoiceId);
System.out.println("I am in damascus zone");
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println(invoice.toString()); System.out.println(invoice.toString());
} catch (IOException e){ } catch (IOException e){
throw new RuntimeException(e); throw new RuntimeException(e);
} }
...@@ -37,6 +39,7 @@ public class InvoiceResource { ...@@ -37,6 +39,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){
List<Invoice> inv = new ArrayList<>(); List<Invoice> inv = new ArrayList<>();
inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId); inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId);
System.out.println("I am in damascus zone");
log.info("Got unpaid invoices for user has "+userId+ " userId"); log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("Got unpaid invoices for user has "+userId+ " userId");
return inv; return inv;
...@@ -44,6 +47,7 @@ public class InvoiceResource { ...@@ -44,6 +47,7 @@ public class InvoiceResource {
@PostMapping("/updateInvoiceStatus/{invoiceId}") @PostMapping("/updateInvoiceStatus/{invoiceId}")
public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){ public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){
/* here some logic like get invoice from database and set the status to true */ /* here some logic like get invoice from database and set the status to true */
System.out.println("I am in damascus zone");
log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
return true; return true;
...@@ -52,6 +56,7 @@ public class InvoiceResource { ...@@ -52,6 +56,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoices(){ public List<Invoice> getUnPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getUnPaidInvoices(); invoices = ExternalAPI.getUnPaidInvoices();
System.out.println("I am in damascus zone");
log.info("Got all unpaid invoices"); log.info("Got all unpaid invoices");
System.out.println("Got all unpaid invoices"); System.out.println("Got all unpaid invoices");
return invoices; return invoices;
...@@ -60,6 +65,7 @@ public class InvoiceResource { ...@@ -60,6 +65,7 @@ public class InvoiceResource {
public List<Invoice> getPaidInvoices(){ public List<Invoice> getPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getPaidInvoices(); invoices = ExternalAPI.getPaidInvoices();
System.out.println("I am in damascus zone");
log.info("Got all paid invoices"); log.info("Got all paid invoices");
System.out.println("Got all paid invoices"); System.out.println("Got all paid invoices");
return invoices; return invoices;
......
...@@ -40,3 +40,76 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques ...@@ -40,3 +40,76 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques
2024-04-27 22:34:32.470 [main] DEBUG o.e.InvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:34:32.470 [main] DEBUG o.e.InvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:34:32.480 [main] INFO o.e.InvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:34:32.480 [main] INFO o.e.InvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:34:42.618 [main] INFO o.e.InvoicingServiceApplication - Started InvoicingServiceApplication in 12.377 seconds (process running for 14.273) 2024-04-27 22:34:42.618 [main] INFO o.e.InvoicingServiceApplication - Started InvoicingServiceApplication in 12.377 seconds (process running for 14.273)
2024-04-27 23:03:59.219 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/DESKTOP-LO543MC:invoicing-service:8081 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:51:44.249 [main] INFO o.e.InvoicingServiceApplication - Starting InvoicingServiceApplication using Java 17 with PID 1368 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\invoicing-service\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:51:44.262 [main] DEBUG o.e.InvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:51:44.273 [main] INFO o.e.InvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:51:58.166 [main] INFO o.e.InvoicingServiceApplication - Started InvoicingServiceApplication in 16.865 seconds (process running for 18.304)
2024-04-28 00:04:43.698 [http-nio-8081-exec-1] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:12:10.781 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/localhost:invoicing-service:8081 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
...@@ -41,3 +41,79 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques ...@@ -41,3 +41,79 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques
2024-04-27 22:35:08.465 [main] DEBUG o.e.ReplicaInvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:35:08.465 [main] DEBUG o.e.ReplicaInvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:35:08.468 [main] INFO o.e.ReplicaInvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:35:08.468 [main] INFO o.e.ReplicaInvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:35:19.906 [main] INFO o.e.ReplicaInvoicingServiceApplication - Started ReplicaInvoicingServiceApplication in 13.232 seconds (process running for 14.892) 2024-04-27 22:35:19.906 [main] INFO o.e.ReplicaInvoicingServiceApplication - Started ReplicaInvoicingServiceApplication in 13.232 seconds (process running for 14.892)
2024-04-27 23:03:59.325 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/DESKTOP-LO543MC:invoicing-service:8082 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:52:18.372 [main] INFO o.e.ReplicaInvoicingServiceApplication - Starting ReplicaInvoicingServiceApplication using Java 17 with PID 12408 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\replica-invoicing-service\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:52:18.385 [main] DEBUG o.e.ReplicaInvoicingServiceApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:52:18.392 [main] INFO o.e.ReplicaInvoicingServiceApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:52:32.696 [main] INFO o.e.ReplicaInvoicingServiceApplication - Started ReplicaInvoicingServiceApplication in 16.952 seconds (process running for 18.834)
2024-04-27 23:56:14.302 [http-nio-8082-exec-1] INFO o.example.resources.InvoiceResource - Got all paid invoices
2024-04-28 00:00:17.696 [http-nio-8082-exec-3] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:02:42.487 [http-nio-8082-exec-5] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:05:09.283 [http-nio-8082-exec-7] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:12:11.237 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/localhost:invoicing-service:8082 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
This diff is collapsed.
...@@ -41,3 +41,78 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques ...@@ -41,3 +41,78 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques
2024-04-27 22:34:50.491 [main] DEBUG o.e.InvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:34:50.491 [main] DEBUG o.e.InvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:34:50.494 [main] INFO o.e.InvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:34:50.494 [main] INFO o.e.InvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:35:01.092 [main] INFO o.e.InvoicingServiceZone2Application - Started InvoicingServiceZone2Application in 12.219 seconds (process running for 14.397) 2024-04-27 22:35:01.092 [main] INFO o.e.InvoicingServiceZone2Application - Started InvoicingServiceZone2Application in 12.219 seconds (process running for 14.397)
2024-04-27 23:03:59.114 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/DESKTOP-LO543MC:invoicing-service:8085 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:52:00.801 [main] INFO o.e.InvoicingServiceZone2Application - Starting InvoicingServiceZone2Application using Java 17 with PID 17320 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\invoicing-service-zone-2\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:52:00.808 [main] DEBUG o.e.InvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:52:00.810 [main] INFO o.e.InvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:52:13.985 [main] INFO o.e.InvoicingServiceZone2Application - Started InvoicingServiceZone2Application in 15.878 seconds (process running for 17.657)
2024-04-27 23:53:59.059 [http-nio-8085-exec-1] INFO o.example.resources.InvoiceResource - Got all paid invoices
2024-04-28 00:07:23.473 [http-nio-8085-exec-3] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:09:41.902 [http-nio-8085-exec-5] INFO o.example.resources.InvoiceResource - mark the invoice which has 2 invoiceId status as true (paid)
2024-04-28 00:12:10.845 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/localhost:invoicing-service:8085 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
...@@ -41,3 +41,78 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques ...@@ -41,3 +41,78 @@ com.netflix.discovery.shared.transport.TransportException: Cannot execute reques
2024-04-27 22:35:27.599 [main] DEBUG o.e.ReplicaInvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:35:27.599 [main] DEBUG o.e.ReplicaInvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:35:27.601 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:35:27.601 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:35:37.400 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - Started ReplicaInvoicingServiceZone2Application in 11.469 seconds (process running for 13.428) 2024-04-27 22:35:37.400 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - Started ReplicaInvoicingServiceZone2Application in 11.469 seconds (process running for 13.428)
2024-04-27 23:03:59.581 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/DESKTOP-LO543MC:invoicing-service:8084 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:52:53.052 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - Starting ReplicaInvoicingServiceZone2Application using Java 17 with PID 15744 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\replica-invoicing-service-zone-2\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:52:53.084 [main] DEBUG o.e.ReplicaInvoicingServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:52:53.086 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:53:06.845 [main] INFO o.e.ReplicaInvoicingServiceZone2Application - Started ReplicaInvoicingServiceZone2Application in 16.69 seconds (process running for 18.788)
2024-04-27 23:55:06.828 [http-nio-8084-exec-1] INFO o.example.resources.InvoiceResource - Got all paid invoices
2024-04-28 00:01:39.476 [http-nio-8084-exec-3] INFO o.example.resources.InvoiceResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:08:06.355 [http-nio-8084-exec-5] INFO o.example.resources.InvoiceResource - mark the invoice which has 2 invoiceId status as true (paid)
2024-04-28 00:12:11.666 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_INVOICING-SERVICE/localhost:invoicing-service:8084 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
...@@ -8,3 +8,48 @@ ...@@ -8,3 +8,48 @@
2024-04-27 22:35:45.027 [main] DEBUG o.e.UsersServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:35:45.027 [main] DEBUG o.e.UsersServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:35:45.030 [main] INFO o.e.UsersServiceZone2Application - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:35:45.030 [main] INFO o.e.UsersServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:35:54.367 [main] INFO o.e.UsersServiceZone2Application - Started UsersServiceZone2Application in 10.982 seconds (process running for 12.942) 2024-04-27 22:35:54.367 [main] INFO o.e.UsersServiceZone2Application - Started UsersServiceZone2Application in 10.982 seconds (process running for 12.942)
2024-04-27 23:03:59.831 [SpringApplicationShutdownHook] ERROR c.netflix.discovery.DiscoveryClient - DiscoveryClient_USERS-SERVICE/DESKTOP-LO543MC:users-service:8083 - de-registration failedCannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$2.execute(EurekaHttpClientDecorator.java:74)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.cancel(EurekaHttpClientDecorator.java:71)
at com.netflix.discovery.DiscoveryClient.unregister(DiscoveryClient.java:916)
at com.netflix.discovery.DiscoveryClient.shutdown(DiscoveryClient.java:892)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:424)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:382)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:212)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:191)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:184)
at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.destroy(GenericScope.java:389)
at org.springframework.cloud.context.scope.GenericScope.destroy(GenericScope.java:136)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:200)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1177)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1170)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1082)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1051)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:173)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1001)
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:139)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:108)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:53:10.864 [main] INFO o.e.UsersServiceZone2Application - Starting UsersServiceZone2Application using Java 17 with PID 9968 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\users-service-zone-2\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:53:10.938 [main] DEBUG o.e.UsersServiceZone2Application - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:53:10.943 [main] INFO o.e.UsersServiceZone2Application - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:53:22.623 [main] INFO o.e.UsersServiceZone2Application - Started UsersServiceZone2Application in 14.622 seconds (process running for 16.087)
2024-04-27 23:55:06.930 [http-nio-8083-exec-1] INFO org.example.resources.UserResource - Got all users have paid invoices
2024-04-27 23:56:14.350 [http-nio-8083-exec-2] INFO org.example.resources.UserResource - Got all users have paid invoices
2024-04-28 00:00:17.700 [http-nio-8083-exec-5] INFO org.example.resources.UserResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:01:39.481 [http-nio-8083-exec-6] INFO org.example.resources.UserResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:02:42.492 [http-nio-8083-exec-9] INFO org.example.resources.UserResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:04:43.723 [http-nio-8083-exec-10] INFO org.example.resources.UserResource - Got unpaid invoices for user has 1 userId
2024-04-28 00:05:09.287 [http-nio-8083-exec-1] INFO org.example.resources.UserResource - Got unpaid invoices for user has 1 userId
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<module>users-service-zone-2</module> <module>users-service-zone-2</module>
<module>invoicing-service-zone-2</module> <module>invoicing-service-zone-2</module>
<module>replica-invoicing-service-zone-2</module> <module>replica-invoicing-service-zone-2</module>
<module>cloud-gateway-zone-2</module>
</modules> </modules>
<properties> <properties>
......
...@@ -24,6 +24,7 @@ public class InvoiceResource { ...@@ -24,6 +24,7 @@ public class InvoiceResource {
Invoice invoice = null; Invoice invoice = null;
try { try {
invoice = ExternalAPI.getInvoiceDetails(invoiceId); invoice = ExternalAPI.getInvoiceDetails(invoiceId);
System.out.println("I am in latakia zone");
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println(invoice.toString()); System.out.println(invoice.toString());
...@@ -37,6 +38,7 @@ public class InvoiceResource { ...@@ -37,6 +38,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){
List<Invoice> inv = new ArrayList<>(); List<Invoice> inv = new ArrayList<>();
inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId); inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId);
System.out.println("I am in latakia zone");
log.info("Got unpaid invoices for user has "+userId+ " userId"); log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("Got unpaid invoices for user has "+userId+ " userId");
return inv; return inv;
...@@ -44,6 +46,7 @@ public class InvoiceResource { ...@@ -44,6 +46,7 @@ public class InvoiceResource {
@PostMapping("/updateInvoiceStatus/{invoiceId}") @PostMapping("/updateInvoiceStatus/{invoiceId}")
public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){ public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){
/* here some logic like get invoice from database and set the status to true */ /* here some logic like get invoice from database and set the status to true */
System.out.println("I am in latakia zone");
log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
return true; return true;
...@@ -52,6 +55,7 @@ public class InvoiceResource { ...@@ -52,6 +55,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoices(){ public List<Invoice> getUnPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getUnPaidInvoices(); invoices = ExternalAPI.getUnPaidInvoices();
System.out.println("I am in latakia zone");
log.info("Got all unpaid invoices"); log.info("Got all unpaid invoices");
System.out.println("Got all unpaid invoices"); System.out.println("Got all unpaid invoices");
return invoices; return invoices;
...@@ -60,6 +64,7 @@ public class InvoiceResource { ...@@ -60,6 +64,7 @@ public class InvoiceResource {
public List<Invoice> getPaidInvoices(){ public List<Invoice> getPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getPaidInvoices(); invoices = ExternalAPI.getPaidInvoices();
System.out.println("I am in latakia zone");
log.info("Got all paid invoices"); log.info("Got all paid invoices");
System.out.println("Got all paid invoices"); System.out.println("Got all paid invoices");
return invoices; return invoices;
......
...@@ -24,6 +24,7 @@ public class InvoiceResource { ...@@ -24,6 +24,7 @@ public class InvoiceResource {
Invoice invoice = null; Invoice invoice = null;
try { try {
invoice = ExternalAPI.getInvoiceDetails(invoiceId); invoice = ExternalAPI.getInvoiceDetails(invoiceId);
System.out.println("I am in damascus zone");
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println("Got invoice details it's Id is "+ invoiceId); System.out.println("Got invoice details it's Id is "+ invoiceId);
System.out.println(invoice.toString()); System.out.println(invoice.toString());
...@@ -37,6 +38,7 @@ public class InvoiceResource { ...@@ -37,6 +38,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoicesForSpecificUser(@PathVariable("userId") String userId){
List<Invoice> inv = new ArrayList<>(); List<Invoice> inv = new ArrayList<>();
inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId); inv = ExternalAPI.getUnPaidInvoicesForSpecificUser(userId);
System.out.println("I am in damascus zone");
log.info("Got unpaid invoices for user has "+userId+ " userId"); log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("Got unpaid invoices for user has "+userId+ " userId");
return inv; return inv;
...@@ -44,6 +46,7 @@ public class InvoiceResource { ...@@ -44,6 +46,7 @@ public class InvoiceResource {
@PostMapping("/updateInvoiceStatus/{invoiceId}") @PostMapping("/updateInvoiceStatus/{invoiceId}")
public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){ public boolean updateInvoiceStatus(@PathVariable("invoiceId") String invoiceId){
/* here some logic like get invoice from database and set the status to true */ /* here some logic like get invoice from database and set the status to true */
System.out.println("I am in damascus zone");
log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); log.info("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)"); System.out.println("mark the invoice which has "+invoiceId+" invoiceId status as true (paid)");
return true; return true;
...@@ -52,6 +55,7 @@ public class InvoiceResource { ...@@ -52,6 +55,7 @@ public class InvoiceResource {
public List<Invoice> getUnPaidInvoices(){ public List<Invoice> getUnPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getUnPaidInvoices(); invoices = ExternalAPI.getUnPaidInvoices();
System.out.println("I am in damascus zone");
log.info("Got all unpaid invoices"); log.info("Got all unpaid invoices");
System.out.println("Got all unpaid invoices"); System.out.println("Got all unpaid invoices");
return invoices; return invoices;
...@@ -60,6 +64,7 @@ public class InvoiceResource { ...@@ -60,6 +64,7 @@ public class InvoiceResource {
public List<Invoice> getPaidInvoices(){ public List<Invoice> getPaidInvoices(){
List<Invoice> invoices = new ArrayList<Invoice>(); List<Invoice> invoices = new ArrayList<Invoice>();
invoices = ExternalAPI.getPaidInvoices(); invoices = ExternalAPI.getPaidInvoices();
System.out.println("I am in damascus zone");
log.info("Got all paid invoices"); log.info("Got all paid invoices");
System.out.println("Got all paid invoices"); System.out.println("Got all paid invoices");
return invoices; return invoices;
......
...@@ -12019,3 +12019,20 @@ java.lang.IllegalStateException: Client instance has been closed. ...@@ -12019,3 +12019,20 @@ java.lang.IllegalStateException: Client instance has been closed.
2024-04-27 22:32:36.584 [main] DEBUG o.e.ServiceDiscoveryApplication - Running with Spring Boot v3.0.1, Spring v6.0.3 2024-04-27 22:32:36.584 [main] DEBUG o.e.ServiceDiscoveryApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 22:32:36.587 [main] INFO o.e.ServiceDiscoveryApplication - No active profile set, falling back to 1 default profile: "default" 2024-04-27 22:32:36.587 [main] INFO o.e.ServiceDiscoveryApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 22:32:50.785 [main] INFO o.e.ServiceDiscoveryApplication - Started ServiceDiscoveryApplication in 15.74 seconds (process running for 17.625) 2024-04-27 22:32:50.785 [main] INFO o.e.ServiceDiscoveryApplication - Started ServiceDiscoveryApplication in 15.74 seconds (process running for 17.625)
2024-04-27 23:03:55.992 [Eureka-Jersey3Client-Conn-Cleaner2] ERROR c.n.d.s.t.j.EurekaJersey3ClientImpl - Cannot clean connections
java.lang.IllegalStateException: Client instance has been closed.
at org.glassfish.jersey.internal.guava.Preconditions.checkState(Preconditions.java:169)
at org.glassfish.jersey.client.JerseyClient.checkNotClosed(JerseyClient.java:257)
at org.glassfish.jersey.client.JerseyClient.getConfiguration(JerseyClient.java:372)
at org.glassfish.jersey.client.JerseyClient.getConfiguration(JerseyClient.java:56)
at com.netflix.discovery.shared.transport.jersey3.EurekaJersey3ClientImpl$ConnectionCleanerTask.run(EurekaJersey3ClientImpl.java:348)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-27 23:49:48.882 [main] INFO o.e.ServiceDiscoveryApplication - Starting ServiceDiscoveryApplication using Java 17 with PID 13464 (D:\Second Semester\Advanced DS\Practical\New folder\micro-services\service-discovery\target\classes started by dell in D:\Second Semester\Advanced DS\Practical\New folder\micro-services)
2024-04-27 23:49:48.893 [main] DEBUG o.e.ServiceDiscoveryApplication - Running with Spring Boot v3.0.1, Spring v6.0.3
2024-04-27 23:49:48.897 [main] INFO o.e.ServiceDiscoveryApplication - No active profile set, falling back to 1 default profile: "default"
2024-04-27 23:50:04.989 [main] INFO o.e.ServiceDiscoveryApplication - Started ServiceDiscoveryApplication in 18.687 seconds (process running for 20.271)
...@@ -25,7 +25,8 @@ public class UserResource { ...@@ -25,7 +25,8 @@ public class UserResource {
public List<Invoice> getUnPaidInvoices(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoices(@PathVariable("userId") String userId){
if(userRepository.exist(userId)) { if(userRepository.exist(userId)) {
List<Invoice> invoices = Arrays.asList(restTemplate.getForObject("http://invoicing-service/invoices/getUnPaidInvoicesForSpecificUser/" + userId, Invoice[].class)); List<Invoice> invoices = Arrays.asList(restTemplate.getForObject("http://invoicing-service/invoices/getUnPaidInvoicesForSpecificUser/" + userId, Invoice[].class));
log.info("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("I am in latakia zone");
log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got all unpaid invoices for user has "+userId+ " userId"); System.out.println("Got all unpaid invoices for user has "+userId+ " userId");
return invoices; return invoices;
} }
...@@ -43,6 +44,7 @@ public class UserResource { ...@@ -43,6 +44,7 @@ public class UserResource {
ResponseEntity<Boolean> response = restTemplate.exchange(url, HttpMethod.POST, null, Boolean.class); ResponseEntity<Boolean> response = restTemplate.exchange(url, HttpMethod.POST, null, Boolean.class);
boolean status = response.getBody(); boolean status = response.getBody();
userRepository.updateUser(user); userRepository.updateUser(user);
System.out.println("I am in latakia zone");
log.info("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId"); log.info("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId");
System.out.println("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId"); System.out.println("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId");
return status; return status;
...@@ -69,6 +71,7 @@ public class UserResource { ...@@ -69,6 +71,7 @@ public class UserResource {
user = userRepository.getUser(invoice.getUserID()); user = userRepository.getUser(invoice.getUserID());
userInvoiceHashMap.put(user,invoice); userInvoiceHashMap.put(user,invoice);
} }
System.out.println("I am in latakia zone");
log.info("Got all users have unPaid invoices"); log.info("Got all users have unPaid invoices");
System.out.println("Got all users have unPaid invoices"); System.out.println("Got all users have unPaid invoices");
return userInvoiceHashMap; return userInvoiceHashMap;
...@@ -85,6 +88,7 @@ public class UserResource { ...@@ -85,6 +88,7 @@ public class UserResource {
user = userRepository.getUser(invoice.getUserID()); user = userRepository.getUser(invoice.getUserID());
userInvoiceHashMap.put(user,invoice); userInvoiceHashMap.put(user,invoice);
} }
System.out.println("I am in latakia zone");
log.info("Got all users have paid invoices"); log.info("Got all users have paid invoices");
System.out.println("Got all users have paid invoices"); System.out.println("Got all users have paid invoices");
return userInvoiceHashMap; return userInvoiceHashMap;
......
...@@ -25,7 +25,8 @@ public class UserResource { ...@@ -25,7 +25,8 @@ public class UserResource {
public List<Invoice> getUnPaidInvoices(@PathVariable("userId") String userId){ public List<Invoice> getUnPaidInvoices(@PathVariable("userId") String userId){
if(userRepository.exist(userId)) { if(userRepository.exist(userId)) {
List<Invoice> invoices = Arrays.asList(restTemplate.getForObject("http://invoicing-service/invoices/getUnPaidInvoicesForSpecificUser/" + userId, Invoice[].class)); List<Invoice> invoices = Arrays.asList(restTemplate.getForObject("http://invoicing-service/invoices/getUnPaidInvoicesForSpecificUser/" + userId, Invoice[].class));
log.info("Got unpaid invoices for user has "+userId+ " userId"); System.out.println("I am in damascus zone");
log.info("Got unpaid invoices for user has "+userId+ " userId");
System.out.println("Got all unpaid invoices for user has "+userId+ " userId"); System.out.println("Got all unpaid invoices for user has "+userId+ " userId");
return invoices; return invoices;
} }
...@@ -43,6 +44,7 @@ public class UserResource { ...@@ -43,6 +44,7 @@ public class UserResource {
ResponseEntity<Boolean> response = restTemplate.exchange(url, HttpMethod.POST, null, Boolean.class); ResponseEntity<Boolean> response = restTemplate.exchange(url, HttpMethod.POST, null, Boolean.class);
boolean status = response.getBody(); boolean status = response.getBody();
userRepository.updateUser(user); userRepository.updateUser(user);
System.out.println("I am in damascus zone");
log.info("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId"); log.info("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId");
System.out.println("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId"); System.out.println("paid invoice with "+invoiceId+ " invoiceId for user has "+userId+" userId");
return status; return status;
...@@ -69,6 +71,7 @@ public class UserResource { ...@@ -69,6 +71,7 @@ public class UserResource {
user = userRepository.getUser(invoice.getUserID()); user = userRepository.getUser(invoice.getUserID());
userInvoiceHashMap.put(user,invoice); userInvoiceHashMap.put(user,invoice);
} }
System.out.println("I am in damascus zone");
log.info("Got all users have unPaid invoices"); log.info("Got all users have unPaid invoices");
System.out.println("Got all users have unPaid invoices"); System.out.println("Got all users have unPaid invoices");
return userInvoiceHashMap; return userInvoiceHashMap;
...@@ -85,6 +88,7 @@ public class UserResource { ...@@ -85,6 +88,7 @@ public class UserResource {
user = userRepository.getUser(invoice.getUserID()); user = userRepository.getUser(invoice.getUserID());
userInvoiceHashMap.put(user,invoice); userInvoiceHashMap.put(user,invoice);
} }
System.out.println("I am in damascus zone");
log.info("Got all users have paid invoices"); log.info("Got all users have paid invoices");
System.out.println("Got all users have paid invoices"); System.out.println("Got all users have paid invoices");
return userInvoiceHashMap; return userInvoiceHashMap;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment