다음 코드를 실행할 때 ambiguous mapping. cannot map '클래스명' method 오류가 발생하였다.

해당오류의 원인으로는 @Requestmapping의 값이 중복되어 발생한다고 하나 필자의 경우 그러한 중복은 없었다.

그렇기 때문에 다른 원인이 아닌지 추적해갔다.

우선 현재 중복되는 것은 없으니 상속하고 있는 BaseController의 상속을 없앴다. extends를 없애고 다시 실행하니

정상 실행이 되었다.

package com.myshop.main;


import com.myshop.common.base.BaseController;
import com.myshop.goods.service.GoodsService;
import com.myshop.goods.vo.GoodsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

@Controller("mainController")
@EnableAspectJAutoProxy
public class MainController extends BaseController {
    @Autowired
    private GoodsService goodsService;

    @RequestMapping(value= "/main/main.do" ,method={RequestMethod.POST,RequestMethod.GET})
    public String main(HttpServletRequest request, HttpServletResponse response) throws Exception{
        System.out.println("===>Controller로 main 메소드 접속");
        HttpSession session;
        ModelAndView mav=new ModelAndView();
        String viewName=(String)request.getAttribute("viewName");
        mav.setViewName(viewName);

        session=request.getSession();
        session.setAttribute("side_menu", "user");
        Map<String, List<GoodsVO>> goodsMap=goodsService.listGoods();
        mav.addObject("goodsMap", goodsMap);
        return "/main/main";
    }
}

BaseController 클래스를 다시 작성하니 코드가 정상 구동이 되었다.

필자의 경우 @Requestmapping의 중복이 아닌 해당 코드의 어떠한 문제로 유추된다.

package com.myshop.common.base;

import com.myshop.goods.vo.ImageFileVO;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;

public class BaseController {
    private static final String CURR_IMAGE_REPO_PATH = "C:\\shopping\\file_repo";

    protected List<ImageFileVO> upload(MultipartHttpServletRequest multipartRequest) throws Exception{
        List<ImageFileVO> fileList= new ArrayList<ImageFileVO>();
        Iterator<String> fileNames = multipartRequest.getFileNames();
        while(fileNames.hasNext()){
            ImageFileVO imageFileVO =new ImageFileVO();
            String fileName = fileNames.next();
            imageFileVO.setFileType(fileName);
            MultipartFile mFile = multipartRequest.getFile(fileName);
            String originalFileName=mFile.getOriginalFilename();
            imageFileVO.setFileName(originalFileName);
            fileList.add(imageFileVO);

            File file = new File(CURR_IMAGE_REPO_PATH +"\\"+ fileName);
            if(mFile.getSize()!=0){ //File Null Check
                if(! file.exists()){ //��λ� ������ �������� ���� ���
                    if(file.getParentFile().mkdirs()){ //��ο� �ش��ϴ� ���丮���� ����
                        file.createNewFile(); //���� ���� ����
                    }
                }
                mFile.transferTo(new File(CURR_IMAGE_REPO_PATH +"\\"+"temp"+ "\\"+originalFileName)); //�ӽ÷� ����� multipartFile�� ���� ���Ϸ� ����
            }
        }
        return fileList;
    }

    private void deleteFile(String fileName) {
        File file =new File(CURR_IMAGE_REPO_PATH+"\\"+fileName);
        try{
            file.delete();
        }catch(Exception e){
            e.printStackTrace();
        }
    }


    @RequestMapping(value="/*.do" ,method={RequestMethod.POST,RequestMethod.GET})
    protected ModelAndView viewForm(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String viewName=(String)request.getAttribute("viewName");
        ModelAndView mav = new ModelAndView(viewName);
        return mav;
    }


    protected String calcSearchPeriod(String fixedSearchPeriod){
        String beginDate=null;
        String endDate=null;
        String endYear=null;
        String endMonth=null;
        String endDay=null;
        String beginYear=null;
        String beginMonth=null;
        String beginDay=null;
        DecimalFormat df = new DecimalFormat("00");
        Calendar cal=Calendar.getInstance();

        endYear   = Integer.toString(cal.get(Calendar.YEAR));
        endMonth  = df.format(cal.get(Calendar.MONTH) + 1);
        endDay   = df.format(cal.get(Calendar.DATE));
        endDate = endYear +"-"+ endMonth +"-"+endDay;

        if(fixedSearchPeriod == null) {
            cal.add(cal.MONTH,-4);
        }else if(fixedSearchPeriod.equals("one_week")) {
            cal.add(Calendar.DAY_OF_YEAR, -7);
        }else if(fixedSearchPeriod.equals("two_week")) {
            cal.add(Calendar.DAY_OF_YEAR, -14);
        }else if(fixedSearchPeriod.equals("one_month")) {
            cal.add(cal.MONTH,-1);
        }else if(fixedSearchPeriod.equals("two_month")) {
            cal.add(cal.MONTH,-2);
        }else if(fixedSearchPeriod.equals("three_month")) {
            cal.add(cal.MONTH,-3);
        }else if(fixedSearchPeriod.equals("four_month")) {
            cal.add(cal.MONTH,-4);
        }

        beginYear   = Integer.toString(cal.get(Calendar.YEAR));
        beginMonth  = df.format(cal.get(Calendar.MONTH) + 1);
        beginDay   = df.format(cal.get(Calendar.DATE));
        beginDate = beginYear +"-"+ beginMonth +"-"+beginDay;

        return beginDate+","+endDate;
    }
}

 

+ Recent posts