error
415 (Unsupported Media Type) error 415에러 해결- 스프링 3.1.1.RELEASE 이하 버전
KJE1218
2023. 1. 4. 14:42
개발환경: Spring 3.1.1.RELEASE, java1.6, tomcat7, mybatis
ajax로 json데이터를 주고받을시 아래와 같은 에러를 마주하게 되면 당황하게 된다.
분명 아래와 같은 관련 jsckson라이브러리도 추가했고..
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.0.0</version>
</dependency>
구글링으로 해결방법을 찾아봤었다.
1. HTTP Request, Content-Type 헤더와 Accept 헤더 확인
2. @RequestBody 설정
3. annotation-driven 설정
4. Header에 Content-Type을 application/json 으로 설정 등등
...
그런데 이것들을 다 시도해봤는데도 안됐다...
그리고 오늘 오류 원인을 찾았다...
그냥 스프링 버전 문제였다...
스프링 3.1.2.RELEASE 버전부터 저 위의 라이브러리들을 사용할 수 있고, 그 이하 버전은 사용 못한다.
그러니 뭔 짓을 해도 해결이 안되었던 것이다.
해결 방법 2가지를 찾아서 아래 서술.
3.1.1.RELEASE 이하 버전 415 (Unsupported Media Type) error 415에러 해결 방법
1. pom.xml에서 아래 부분의 3.1.1.RELEASE 를 3.1.2.RELEASE 로 바꾼다. (버전을 올린다.)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.research</groupId>
<artifactId>spring</artifactId>
<name>research_spring</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
2. 상단의 라이브러리 2개(jackson-databind, jackson-core)를 지우고 아래 라이브러리를 추가한다.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
버전을 올릴수가 없는 상황이라.. 나는 2번 방법을 써서 해결했다.
혹시 위 2개 방법으로도 안되면 2번의 라이브러리 버전을 낮춰서 시도해보길 추천한다.
하루 꼬박 저게 왜 안되는거지... 하고 헤매다가 찾아서 방법을 기록해둔다. 나처럼 헤매는사람에게 도움되길 바라며...