2013-04-11 116 views
0

我有一個在春天開發的方法。以下是我的方法:如何通過java反射發送HTTP請求

@PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')") 
    @RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition") 
    public @ResponseBody 
    void createRequisition(@RequestBody CreateRequisitionRO[] request, 
      @RequestHeader("validateOnly") boolean validateOnly) { 
     logger.debug("Starting createRequisition()..."); 
     for (int i = 0; i < request.length; i++) { 
      CreateRequisitionRO requisitionRequest = request[i]; 

      // FIXME this has to be removed/moved 
      requisitionRequest.setFundManager(requisitionRequest.getUserId()); 
      // FIXME might have to search using param level as well 
      SystemDefault sysDefault = dbFuncs.references.systemDefault 
        .findByCompanyAndDivisionAndPortfolio(
          userContext.getCompany(), 
          userContext.getDivision(), 
          requisitionRequest.getPortfolio()); 
      requisitionRequest.setCustodianN(sysDefault.getCustodianN()); 

      gateKeeper.route(requisitionRequest); 
     } 
    } 

我想通過Java反射調用此方法與得到的迴應。並比較響應。

Tomcat的是向上的用戶在登錄到系統。當tomcat啓動時,我必須使用反射來調用該方法。

如何做到這一點在Java反射?

請幫忙是可能的,如果可能的話請建議我做一些投入,如果它是不可能支持我的可能性,這將幫助我解決這個問題。

編輯:

這是我試過,但它不工作:

Class cls; 
     CreateRequisitionRO[] request = new CreateRequisitionRO[10]; 
     try { 
      //load the HexgenWebAPI at runtime 
      cls = Class.forName("com.hexgen.api.facade.HexgenWebAPI"); 
      Object obj = cls.newInstance(); 

      Method method = cls.getDeclaredMethod("createRequisition", parames,booleanVal); 
      method.invoke(obj, request,true); 


     }catch(Exception ex){ 
      ex.printStackTrace(); 
      System.out.println("status of reflection : "+ex.getCause()); 
     } 

問候 安託

+1

你能不能給你想要做什麼的例子嗎? – NilsH 2013-04-11 11:28:24

+0

@NilsH請參閱我更新的問題。好評如潮 – 2013-04-11 11:35:00

+1

好的,但你想做什麼?你爲什麼需要用反射來稱呼它? – NilsH 2013-04-11 11:39:24

回答

1

基於該響應的評論,你想測試你的Spring MVC控制器。我認爲你不應該有任何理由去解決這個問題。單元測試最好寫在Web容器外運行。如果你想要做集成測試,檢查Spring-MVC-Test,或使用瀏覽器測試框架,像WebDriverHtmlUnit

+0

感謝您的投入,我會檢查這些,並且你的答案,如果它適合需要。你是個好人。非常感謝 :) – 2013-04-11 12:18:54