레이블이 spring인 게시물을 표시합니다. 모든 게시물 표시
레이블이 spring인 게시물을 표시합니다. 모든 게시물 표시

2017년 1월 20일 금요일

java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!

java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!  
 
위의 에러는 Validate를 하는 메소드 내에서 BindingResult의 순서와 관련된 에러입니다. 
 
BindingResult가 HttpServletRequest, HttpServletResponse, ModelMap보다 먼저 선언되어야 에러가 나지 않아요. 
 
저 같은 경우에는 
 
public String add(HttpSession session,
   @ModelAttribute("Form") Form form,
   HttpServletRequest request, 
   ModelMap model, BindingResult bindingResult ){

처럼 선언했다가

public String add(HttpSession session,
@ModelAttribute("Form") Form form,
BindingResult bindingResult, HttpServletRequest request, 
ModelMap model){ 
 
로 변경하니 에러가 해결되었습니다. 참조하시고요. 
 
아직 원인은 잘 모르겠지만, 잊어버릴 까봐 블로그에 올립니다.ㅋㅋ 
 
혹시 원인을 아시는 분은 댓글 부탁드려요~~

WARN DispatcherServlet.java:1057 - No mapping found for HTTP request with URI [/*.do] in DispatcherServlet with name '서블릿'

WARN  DispatcherServlet.java:1057 - No mapping found for HTTP request with URI [/*.do] in DispatcherServlet with name '서블릿'

위와 같은 에러가 나오면 주로 xml을 살펴보라는 내용이 나옵니다.

하지만 xml을 수정하지 않았고 이클립스에서 export한 lib만 올렸는데 갑자기 안 된다면

export할 때의 옵션을 살펴주세요.

Compress the contents of the JAR file의 옵션은 빼고
Add directory entries 옵션은 넣어주세요.

간단하게 압축은 하지 말고 디렉토리는 유지하라는 의미인데요.

자세한 설명은 좀 더 알아보고 추가하겠습니다.

NoClassDefFoundError

spring으로 구현을 하려고 테스트 서버에 올리려는데!! 

떡하니, 나오는 저 에러!! 한참동안 ClassNotFoundException으로 착각하고 

계속 jar 파일만 업데이트하다가 발견했습니다.

class가 발견은 되는데 에러가 나는 것이었는데요.

이와 같은 경우는 다운받은 api 에서 에러가 나는 것이 아니라

직접 작성하여 코딩한 class에서 나는 것입니다.

이클립스에서 jar로 Export 할 때 Compress 옵션을 빼고 해주세요. 
 
그리고 나서 다시 업데이트 > 톰캣 재시작을 해주면 아마 잘 될 것입니다...

Beans 클래스를 수정한 뒤, HTTP 404 에러 발생

Beans의 이름을 수정한 뒤, java 파일과 jsp 파일에서 수정을 제대로 했는데도 

HTTP 404 에러가 발생한다면, mybatis-cofig.xml 파일을 살펴보시기 바랍니다.


<configuration>
    <typeAliases>
        <typeAlias alias="Bean 이름" type="Beans 경로" />
    </typeAliases>
</configuration>

위의 부분도 반드시 수정해 주어야 합니다.

DB 값이 읽히긴 하는데 Beans로 값이 넘어오지 않을 때

해당 server의 Overview에서 [Open launch configure] 클릭 -> (x)=Arguments에서
  -D(home)="데이터 저장될 폴더"
를 입력하고 적용해주세요.

여기서 home은 converter관련 클래스에서 Loader를 생성할 때 입력하는 값입니다.

에러 발생이 없는데 브라우저에서 페이지가 뜨지 않을 때

우선적으로 주소를 확인해 보시길 바랍니다.

1. localhost:8080/프로젝트명/index.jsp로 들어가 본다.
(여기서 8080은 server의 Overview 페이지에서 tomcat의 포트입니다. 8005로 변경하면 localhost/프로젝트명/index.jsp로 들어갈 수 있습니다.)

그리고 나서, 프로젝트명을 주소에서 빼고 싶으면 다음과 같이 하세요.
1. 해당 server의 server.xml의 path를 path = "/"로 변경하세요.
2. server 뷰탭에서 해당 server를 더블클릭하여 Overview > Modules로 들어가 해당 모듈을 선택하고 Edit를 클릭합니다. Path를 위와 동일하게 "/"로 변경합니다.

The type org.springframework.dao.support.DaoSupport cannot be resolved. It is indirectly referenced from required .class files

Spring + myBatis 를 eclipse helios에서 작업하고 있었습니다....

그런데 Controller class에서 위와 같은 에러가 나네요ㅠ

이 긴 에러를 읽을 엄두도 못내고 하루를 버리고 있었는데- _-

이런...구글링을 해도 다들 답이 다르시네?? 에효 ㅠㅜ

그래서 깊이 깊숙~히 에러를 다 읽었더니 ㅋㅋ

Service class에서 @Service가 빠져있고 Service class 내에서 선언한 DAO 변수가 

@Autowired가 안 되있더라고요.


이렇게 하니 문제가 해결됐습니다!! 결론은..에러 메세지를 잘 읽자...