2016-07-18 21 views
0
Controller code of Angular Js... 
    FactoryPBD.showPbdCostCompareData(data).success(
     function(result) { 
      if(result != ""){ 
       //doing my processing and working fine 

     }).error(function(result,status,message){ 
      console.log("result" , result); 
      //getting undefined in all the above variable 
     }); 


     Service code: 
     showPbdCostCompareData : function(filter) { 
       promise = $http({ 
        url : 'pbd/showPbdCostCompareData?serachFilterJson='+JSON.stringify(filter), 
        method : "POST" 
       }); 
       return promise; 
      } 

    Java Controller:- 

    @RequestMapping(value = "/showPbdCostCompareData", method = RequestMethod.POST) 
       public @ResponseBody ResponseEntity<String> showPbdCostCompareData(HttpServletRequest request, 
       @RequestParam String serachFilterJson) { 
      try { 
       if (null != serachFilterJson && !"".equalsIgnoreCase(serachFilterJson)) { 
        Gson gson = new Gson(); 
        SearchCriteriaBean searchCriteriaObj = gson.fromJson(serachFilterJson, SearchCriteriaBean.class); 
        CnHeaderBean cnHeaderBean = pbdServiceImpl.getPbdCostCompareCnHeaderData(searchCriteriaObj); //getting the value from sevice 
        List<PbdCostCompareBean> pbdCostCompareList = null; 
        if (null != cnHeaderBean) { 
         if("F".equalsIgnoreCase(cnHeaderBean.getPbdType())){ 
          searchCriteriaObj.setFromPartIscb(cnHeaderBean.getFromPartIscb()); 
          searchCriteriaObj.setToPartIscb(cnHeaderBean.getToPartIscb()); 
          pbdCostCompareList = pbdServiceImpl.getPbdCostComparisonData(searchCriteriaObj); //getting the value from sevice 
         }else{ 
          return new ResponseEntity<String>("Incorrect PBD Type",HttpStatus.SERVICE_UNAVAILABLE); 
         }     
        } else { 
         return new ResponseEntity<String>(HttpStatus.SERVICE_UNAVAILABLE); 
        } 
        HashMap<Integer, Object> costCompareMap = new HashMap<Integer, Object>(); 
        costCompareMap.put(1, cnHeaderBean); 
        costCompareMap.put(2, pbdCostCompareList); 
        costCompareMap.put(3, pbdServiceImpl.validateUserAccess(searchCriteriaObj, serviceUtility.getUserFromSession(request))); 
        String pbdDataJsonResponse = gson.toJson(costCompareMap); 
        return new ResponseEntity<String>(pbdDataJsonResponse, HttpStatus.OK); 
       } else { 
        return new ResponseEntity<String>(HttpStatus.SERVICE_UNAVAILABLE); 
       } 
      } catch (C2PCException e) { 
       return new ResponseEntity<String>(e.getMessage(),HttpStatus.SERVICE_UNAVAILABLE); 
      } 
     } 

私は、自分のプロジェクトにAngular jsのSpring Rest Controllerを使用しています。 Java側でエラーがなければ、正常に動作し、クライアント側にデータが正しく送信されます。しかし、Java側で例外が発生した場合、例外に応じて私は自分のメッセージをuser.Myに返信したいです。私の応答テキストはクライアント側に送信されていません。どんな助けもありがとう。コードは の上に提供されています。上記のe.getMessageでは、私はmuサービスレイヤーで設定したカスタムメッセージを取得し、そこから例外をスローします。しかし、クライアント側のエラーメッセージで私はすべての値を定義されていません。角度jsのResponseEnity

+0

のために働いていた場合e.getMessageが文字列で知らせることができます。エラーが発生した角度のjsでは、JSONまたはHTML/textを返すことを期待していますか?成功した場合、JSONを期待しています。 –

+0

そのJSON私は信じています...私はこれをJSONにどのように変換するのですか? –

答えて

0

は、私はエラーが発生したときの角度jsファイルで、JSONが期待されているといないHTML /テキスト

だから、JSONに例外を変換することを前提としています。 あなたは

class ClassErrorMessage { 
    private String errorCode; 
    private String errorMessage; 
    ClassErrorMessage() { 
    } 
//getters and setters 
} 

すなわちクラス を作成し、

catch (C2PCException e) { 
    ClassErrorMessage classErrorMessage= new ClassErrorMessage(); 
    classErrorMessage.setErrorCode("some code that you may want"); 
    classErrorMessage.setErrorMessage(e.getMessage()); 
    String error = gson.toJson(classErrorMessage); 
    return new ResponseEntity<String>(error,HttpStatus.SERVICE_UNAVAILABLE); 
} 

、私はこれがあなた

+0

お返事ありがとうございます、あなたはそれを正しく持っています。しかし、エラークラスを作成する代わりに、私はjsonとしてエラーテストを行い、それを角度jに戻しました。 –