Skip to main content

Posts

Showing posts from February, 2021

Spring Boot - RestTemplate PATCH request fix

  In Spring Boot, you make a simple http request as below: 1. Define RestTemplate bean @Bean public RestTemplate restTemplate () { return new RestTemplate (); } 2. Autowire RestTemplate wherever you need to make Http calls @Autowire private RestTemplate restTemplate ; 3. Use auto-wired RestTemplate to make the Http call restTemplate . exchange ( "http://localhost:8080/users" , HttpMethod . POST , httpEntity , String . class ); Above setup works fine for all Http calls except PATCH. The following exception occurs if you try to make a PATCH request as above Exception: I / O error on PATCH request for \ "http://localhost:8080/users\" : Invalid HTTP method: PATCH ; nested exception is java . net . ProtocolException : Invalid HTTP method: PATCH Cause: Above exception happens because of the HttpURLConnection used by default in Spring Boot RestTemplate which is provided by the standard JDK HTTP library. More on this at this  bug Fix: This can b...

Cheatsheet: Kubernetes (K8s)

Namespaces: - Namespaces are used as a means to separate k8s resources Create Namespace kubectl create ns <--namespace--> Get all namespaces kubectl get namespaces Pod: - Pod allows you to run the application in a container - Usually the config for pods are defined in YAML, but you can create a quick pod using " run" command. kubectl run <--pod-name--> --image=nginx:2.3.5 --restart=Never --port=80 --namespace=<--namespace--> View pods details kubectl get pod -n <--namespace--> Describe pod: - This will provide much deeper insight into the pod kubectl describe pod -n <--namespace--> Modify pod *Replace xyzPod with your pod name below   kubectl set image pod xyzPod xyzPod=nginx --namespace=<--namespace--> Check Pod status: kubectl get pod -n <--namespace--> Shell into container: kubectl exec <--pod-name--> -it --namespace=<--namespace--> -- /bin/sh - exit from shell #exit Access Pod logs: kubectl logs <--pod-name--> -n...