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 に答える