시스템아 미안해

HttpMessageConverter가 안먹을때 본문

error diary

HttpMessageConverter가 안먹을때

if else 2022. 11. 30. 11:33

먼저 pom.xml에 jackson dependency를 추가해주고, 

 

<!-- JSON Converter -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.9.2</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.9.2</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.2</version>
		</dependency>

 

 

 

web.xml에 환경설정 파일을 읽도록 설정한 다음 

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:config/spring/context/context-*.xml</param-value>
	</context-param>

 

 

 

 

위 경로에 context.xml관련 파일들을 추가했을땐 잘 됐었다.

but... jackson환경설정 xml의 bean만 읽지 못하고, 브라우저엔 404에러가 떴다. 

	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
	    <property name="messageConverters">
	    <!-- new ArrayList()  -->
	    <list>    
	        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
	            <property name="supportedMediaTypes">
	                <list>
	                    <value>text/html;charset=UTF-8</value>
	                    <value>application/json;charset=UTF-8</value>
	                </list>
	            </property>
	        </bean>            
	    </list>
	    </property>                        
	</bean>

 

 

원인 : 스프링 버전 설정

pom.xml에서 3.xx 버전을 5.xx대 버전으로 변경하니 아주 잘 돌아간다. 

 

<properties>
		<java-version>1.6</java-version>
		<org.springframework-version>5.0.0.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

 

 

 

 

	@RequestMapping(value="/deleteDeal" )
	@ResponseBody
	 public Map deleteDeal(@RequestParam int intDidx) {
		 
		 int res = dealService.deleteDeal(intDidx);
		 
		 Map map = new HashMap();
		 
		 if(res!=1) {
	
			 map.put("del", false);
		 }
		 else if(res==1) {

	 		 map.put("del", true);
		 }
		
		 return map;
	 }

@responsebody 어노테이션을 추가하고 map을 return하면 자동으로 json으로 반환한다