0

我有一个在春天开发的方法。以下是我的方法:

@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());
        }

最好的问候安托

4

1 回答 1

1

根据对评论的回复,您正在尝试测试您的 Spring MVC 控制器。我认为您没有任何理由必须决心反思才能做到这一点。单元测试最好在 Web 容器之外编写和运行。如果您想进行集成测试,请查看Spring-MVC-Test,或使用WebDriverHtmlUnit等浏览器测试框架

于 2013-04-11T11:54:35.173 回答