2012-06-16 2 views
0

직장에서 기존의 대시 보드를 받았고 Spring Framework로 전체 Java Servlet을 처음 접했습니다.스프링 프레임 워크로 Eclipse의 Java Web App가 컨트롤러 편집을 인식하지 못함

페이지가 작동하므로 컨트롤러 내부의 메소드에 @RequestMapping 주석이 있습니다. 예를 들면

@RequestMapping("/index.do") 
public ModelAndView index() throws Exception { 
    LoginDO oLoginDO = new LoginDO();  
    return new ModelAndView("index","oLoginDO",oLoginDO); 
} 

servlet.xml 파일은 뷰를 JSP 파일에 매핑하며 모두 작동합니다.

하지만 내 문제는 controller.java 파일을 편집하고 웹 페이지의 새 페이지에 대한 새보기를 반환하는 다른 메서드를 만들 때 변경 내용이 서블릿에서 인식되지 않는 것입니다. "서블릿 요청에 일치하는 처리기 메소드가 없습니다."

이제는 이런 일이 일어나고 있습니다. 나는 이것이 어떻게 일어나고 있는지 생각해 봅니다. 왜냐하면 어떤 식 으로든 Spring Framework가 controller.java에서 편집 될 때 "업데이트"(이것이 올바른 용어인지 모른다) 때문이 아니기 때문입니다. Eclipse에서 WAR 파일의 소스 코드를 배치 한 다음 Tomcat 서버에서 실행했습니다. 여기 거래가 있는데, 멘토의 코드가 편집과 함께 잘 작동하고 있지만 Tomcat 프로젝트를 만들었고 프로젝트 디렉토리가 다르다고 생각합니다. 저장 후 편집 내용이 웹 사이트에 즉시 업데이트됩니다.

JSP를 기존 페이지로 변경하면 업데이트가 즉시 인식되며 새로운 방법과 함께 새 JSP 및 새 @RequestMapping 주석을 만들 때만 작동합니다. 작동하지 않습니다. 나는 심지어 controller.java 내에서 print 서술을 시도해 보았다.

이 글은 이클립스 질문 및 배포 질문이긴하지만 도움이 될 것이라고 생각한다. 이 문제를 해결하기 위해해야 ​​할 일이 무엇인지 잘 모릅니다. 나는 서버를 다시 시작해 보았습니다. 성공하지 못했습니다. 감사!

답변

0

새로운 @RequestMapping 메서드를 사용하려면 컨텍스트를 다시로드하여 업데이트 할 수 있어야합니다. STS (Eclipse)가 스프링 빈에서 변경 사항을 감지하면 컨텍스트를 자동으로 다시로드합니다. 문제가 발생하면 프로젝트를 다시 배포하거나 Tomcat을 다시 시작하십시오.

또한 새 @RequestMapping 메서드를 새 Controller 또는 기존 컨트롤러에 넣는 지 궁금합니다. 컨트롤러가 새 컨트롤러 인 경우 해당 컨트롤러를 Spring 웹 컨텍스트에 추가하십시오 (예 : @Controller + component-scan 또는 bean을 구성 파일에 추가).

+0

음, 분명히 기존 컨트롤러입니다. Tomcat을 다시 시작하려고했습니다. 그러나, 내 문제는 프로젝트가 Java 웹 프로젝트라는 것일 수 있다고 생각합니다. WAR 파일을 가져 오면 Eclipse가 자동으로 수행 한 작업입니다. 오히려 제 동료는 프로젝트를 Tomcat 프로젝트로 보유하고 있으며 플러그인에서 Tomcat 드롭 다운에서 선택하여 컨텍스트를 다시로드하는 등의 작업을 수행 할 수 있습니다. –