[문제]

Controller랑 Web 연결하는 테스트 중 NullPointerException이 떨어짐.

게시판의 내용을 엑셀다운 하는 메소드였는데 신기하게 파람도 잘 넘어가고 지정디텍토리에 파일도 내려옴.

근데 NullPointerException이 떠서 대체 무엇이 문제인가 싶었음.

 

[해결]

이전에 기본 틀을 만들고 그걸 복붙하는 형식으로 개발을 진행했는데

이전 테스트 코드에서 크롬,익플 브라우저에 따른 분기를 하는 코드가 그대로 살아있어서 문제를 일으켰던 거였음.

그 부분을 //주석처리 해주니 널포인트익셉션이 안 뜨고 잘 실행됨.

1. JUnit 테스트하고 오류 날 경우 Caused by : 를 먼저 읽는다. 

   그리고 그 아래의 클래스 파일을 찾아가 오류를 확인한다. 

2. (나의 경우) 브라우저 테스트를 안 하는데 브라우저 확인 코드 있었음 ---> 이부분 주석처리 함.

 

JUnit 테스트하고 오류 날 경우 Caused by : 를 먼저 읽는다. 그리고 그 아래의 클래스 파일을 찾아가 오류를 확인한다. 

 

브라우저 테스트가 아닌데 이 코드가 살아있어서 문제가 됨. 빨간 부분을 주석처리 해줬더니 해결됨.

[문제]

DAO, Service, Controller를 만들고 테스트를 하는 도중 JUnit 테스트에서 

java.lang.AssertionError Content type not set 에러가 남.

[해결]

Controller의 메소드 부분에 @ResponseBody 어노테이션을 붙여줘서 해결했다.

 

@ResponseBody를 붙여줌 (Controller 부분)

[문제]

jsp파일을 실행시켰는데 500에러가 떴음. 

root cause에 org.springframework.beans.factory.UnsatisfiedDependencyException 라고 쓰여있었음.

[해결]

1. HTTP Status 500에러가 뜨면 먼저 root cause에서 뱉는 오류를 확인.

2. Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'codeService';라는 문제 발견.

3. 서비스메소드 부분에 @Service를, 참조객체 부분에 @Autowired를 붙여주면서 해결함.

 

root cause에서 알려주는 오류내용을 확인한다.

 

어노테이션을 붙여주면서 문제 해결.

[문제]

NoSuchMethodError, java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch 에러가 발생.

[해결]

1. JUnit의 버전 4.12로 올려줌 ---> 그래도 여전히 오류가 떴음.

2. <dependencies>에서 JUnit이 위에 오고 mockito가 아래 오게 위치를 바꿈. (해결 끝)

 

<properties>에서 JUnit의 버전 4.12로 올려줌

 

그래도 알 수 없는 오류가 계속 발생했다.

 

<dependency> JUnit 부분을 최상단으로 보내서 해결.
mockito 부분과 엮어서 문제가 생긴 거였다.

 

dependencies에서 JUnit mockito 순서 중요함.

JUnit이 위에 오고 mockito가 아래 와야함.  안 그럼 오류남.

 

<dependency>의 위치가 영향을 주는 게 종종 있다고 한다.

@ContextConfiguration에서 location을 줄 때 참조파일이 2개 이상인 경우

xml 파일 명시하는 부분을 배열화 해야함.

 

1. xml 파일의 경로를 찾는다. 그리고 src부터 끝까지 복사한다.

2. 복사한 주소 앞에 file: 을 붙인다.

3. 큰따옴표("")로 싸주고 쉼표로 이어줌중괄호{} 로 배열화.

 

샘플

 

[문제]

org.springframework.beans.factory.NoSuchBeanDefinitionException 오류가 계속 뜸.

[해결]

@Autowired를 했으면 JDBC Templatexml 파일에 명시해줘야함. 그걸 안 해서 오류 생김.

나는 root-context.xmlJDBC Template을 만들어줬음.

 

JdbcTemplate에 @Autowired를 줬다.

 

root-context.xml에 JdbcTemplate <bean>을 만들어주면서 해결.

 

[문제]

pom.xml파일에서 dependency부분에 계속 빨간줄이 생김.

[해결]

<properties>의 버전정보와 <dependency>의 버전정보가 달라서 생긴 오류였음.

<version>의 ${  } 부분의 값을 <properties>에 있는 것과 맞춰줌.

<dependencies> 내부의 <dependency>에 오류가 뜨는 경우가 있음.

 

<properties>의 버전과 비교를 해본다.

<version> 부분이 달라서 생긴 오류였음.

[문제]

properties파일을 찾을 수 없다는 에러가 났다.

알고보니 properties파일의 경로가 root-context.xml에 적힌 것과 달랐던 것.

[해결]

properties파일 경로를 확인하고 root-context.xml파일에서 경로를 바르게 줌.

파일위치
properties파일의 경로

 

잘못된 주소

 

바로 잡은 형태

+ Recent posts