diff --git a/service/src/main/java/org/apache/griffin/core/job/LivyTaskSubmitHelper.java b/service/src/main/java/org/apache/griffin/core/job/LivyTaskSubmitHelper.java
index cf50527..54cc582 100644
--- a/service/src/main/java/org/apache/griffin/core/job/LivyTaskSubmitHelper.java
+++ b/service/src/main/java/org/apache/griffin/core/job/LivyTaskSubmitHelper.java
@@ -51,6 +51,7 @@
 import org.springframework.http.MediaType;
 import org.springframework.security.kerberos.client.KerberosRestTemplate;
 import org.springframework.stereotype.Component;
+import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.RestTemplate;
 
 @Component
@@ -247,8 +248,14 @@
                 HttpEntity<String> springEntity = new HttpEntity<>(toJsonWithFormat(livyConfMap), headers);
                 result = restTemplate.postForObject(uri, springEntity, String.class);
                 LOGGER.info(result);
+            } catch (HttpClientErrorException e) {
+                LOGGER.error("Post to livy ERROR. \n  response status : " + e.getMessage()
+                    + "\n  response header : " + e.getResponseHeaders()
+                    + "\n  response body : " + e.getResponseBodyAsString());
             } catch (JsonProcessingException e) {
-                LOGGER.error("Post to livy ERROR. \n {}", e.getMessage());
+                LOGGER.error("Json Parsing failed, {}", e.getMessage(), e);
+            } catch (Exception e) {
+                LOGGER.error("Post to livy ERROR. \n {}", e);
             }
             return result;
         } else {
@@ -261,8 +268,14 @@
             HttpEntity<String> springEntity = null;
             try {
                 springEntity = new HttpEntity<>(toJsonWithFormat(livyConfMap), headers);
+            } catch (HttpClientErrorException e) {
+                LOGGER.error("Post to livy ERROR. \n  response status : " + e.getMessage()
+                    + "\n  response header : " + e.getResponseHeaders()
+                    + "\n  response body : " + e.getResponseBodyAsString());
             } catch (JsonProcessingException e) {
                 LOGGER.error("Json Parsing failed, {}", e.getMessage(), e);
+            } catch (Exception e) {
+                LOGGER.error("Post to livy ERROR. {}", e.getMessage(), e);
             }
             String result = restTemplate.postForObject(uri, springEntity, String.class);
             LOGGER.info(result);
diff --git a/service/src/main/resources/sparkProperties.json b/service/src/main/resources/sparkProperties.json
index 8fb023c..3bd4e21 100644
--- a/service/src/main/resources/sparkProperties.json
+++ b/service/src/main/resources/sparkProperties.json
@@ -1,7 +1,6 @@
 {
   "file": "hdfs:///griffin/griffin-measure.jar",
   "className": "org.apache.griffin.measure.Application",
-  "name": "griffin",
   "queue": "default",
   "numExecutors": 2,
   "executorCores": 1,
@@ -12,4 +11,4 @@
   },
   "files": [
   ]
-}
\ No newline at end of file
+}
