2013-04-11 114 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