0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 3

Spring, REST, Json

19.07.2015, 00:15. Показов 1513. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,

Возникает следующая ошибка:

HTTP Status 415 -

description The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.


Я пытаюсь отправить через Ajax, Json запрос к контроллеру REST, PUT.

Вот REST Map:

Java
1
2
3
4
5
package com.springapp.mvc;
 
public class ProductRestMap {
    public static final String PUT_PRODUCT = "/product/rest/put";
}
Вот контроллер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.springapp.mvc;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;
 
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletResponse;
 
@Controller
public class ProductRestController {
 
    ProductRestObject productRestObject;
 
    @RequestMapping(value = ProductRestMap.PUT_PRODUCT, method = RequestMethod.PUT)
    public @ResponseBody ProductRestObject deleteEmployee(
        @RequestBody ProductRestObject pro,
        HttpServletResponse response
    ) throws IOException {
        return pro;
    }
 
}
Вот Json:

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 
<head>
    <title>Product REST PUT</title>
</head>
 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
 
    var prefix = '/product/rest/put';
 
    var JSONObject= {
        'skuId': skuId,
        'MfgPN': 'CAIRO 20',
        'MfgName': 'Vanguard',
        'MfgId': 'Test',
        'prodDesc': 'Test',
        'prodCatCode': 'Test',
        'prodCatName': 'Test',
        'prodLineName': 'Test',
        'productLineId': 'Test',
        'prodModelName': 'Test',
        'prodModelNameId': 'Test',
        'UpcEan': 'Test',
        'priority': 'Test',
        'targetDate': 'Test',
        'marketList': 'Test',
        'launguageList': 'Test',
        'action': 'Test',
        'actionComment': 'Test'
    };
 
    var RestPut = function() {
 
        $.ajax({
            type: 'PUT',
            url:  prefix,
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify(JSONObject),
            dataType: 'json',
            async: true,
            success: function(result) {
                alert('skuId: ' + result.skuId);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('Error: ' + jqXHR.status + ' ' + jqXHR.responseText);
            }
        });
 
    }
 
</script>
 
<body>
 
<h3>Product REST PUT</h3>
 
<button type="button" onclick="RestPut()">Method PUT</button>
 
</body>
 
</html>
Вот модель:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
package com.springapp.mvc;
 
import java.util.Calendar;
 
public class ProductRestObject {
 
    private Integer skuId;
    private String MfgPN;
    private String MfgName;
    private String MfgId;
    private String prodDesc;
    private String prodCatCode;
    private String prodCatName;
    private String prodLineName;
    private String productLineId;
    private String prodModelName;
    private String prodModelNameId;
    private String UpcEan;
    private String priority;
    private String targetDate;
    private String marketList;
    private String launguageList;
    private String action;
    private String actionComment;
 
    public ProductRestObject(
            Integer skuId,
            String MfgPN,
            String MfgName,
            String MfgId,
            String prodDesc,
            String prodCatCode,
            String prodCatName,
            String prodLineName,
            String productLineId,
            String prodModelName,
            String prodModelNameId,
            String UpcEan,
            String priority,
            String targetDate,
            String marketList,
            String launguageList,
            String action,
            String actionComment
    ) {
        this.skuId = skuId;
        this.MfgPN = MfgPN;
        this.MfgName = MfgName;
        this.MfgId = MfgId;
        this.prodDesc = prodDesc;
        this.prodCatCode = prodCatCode;
        this.prodCatName = prodCatName;
        this.prodLineName = prodLineName;
        this.productLineId = productLineId;
        this.prodModelName = prodModelName;
        this.prodModelNameId = prodModelNameId;
        this.UpcEan = UpcEan;
        this.priority = priority;
        this.targetDate = targetDate;
        this.marketList = marketList;
        this.launguageList = launguageList;
        this.action = action;
        this.actionComment = actionComment;
    }
 
    public ProductRestObject() {
 
    }
 
    public Integer getSkuId() {
        return skuId;
    }
 
    public void setSkuId(Integer skuId) {
        this.skuId = skuId;
    }
 
    public String getMfgPN() {
        return MfgPN;
    }
 
    public void setMfgPN(String MfgPN) {
        this.MfgPN = MfgPN;
    }
 
    public String getMfgName() {
        return MfgName;
    }
 
    public void setMfgName(String MfgName) {
        this.MfgName = MfgName;
    }
 
    public String getMfgId() {
        return MfgId;
    }
 
    public void setMfgId(String MfgId) {
        this.MfgId = MfgId;
    }
 
    public String getProdDesc() {
        return prodDesc;
    }
 
    public void setProdDesc(String prodDesc) {
        this.prodDesc = prodDesc;
    }
 
    public String getProdCatCode() {
        return prodCatCode;
    }
 
    public void setProdCatCode(String prodCatCode) {
        this.prodCatCode = prodCatCode;
    }
 
    public String getProdCatName() {
        return prodCatName;
    }
 
    public void setProdCatName(String prodCatName) {
        this.prodCatName = prodCatName;
    }
 
    public String getProdLineName() {
        return prodLineName;
    }
 
    public void setProdLineName(String prodLineName) {
        this.prodLineName = prodLineName;
    }
 
    public String getProductLineId() {
        return productLineId;
    }
 
    public void setProductLineId(String productLineId) {
        this.productLineId = productLineId;
    }
 
    public String getProdModelName() {
        return prodModelName;
    }
 
    public void setProdModelName(String prodModelName) {
        this.prodModelName = prodModelName;
    }
 
    public String getProdModelNameId() {
        return prodModelNameId;
    }
 
    public void setProdModelNameId(String prodModelNameId) {
        this.prodModelNameId = prodModelNameId;
    }
 
    public String getUpcEan() {
        return UpcEan;
    }
 
    public void setUpcEan(String UpcEan) {
        this.UpcEan = UpcEan;
    }
 
    public String getPriority() {
        return priority;
    }
 
    public void setPriority(String priority) {
        this.priority = priority;
    }
 
    public String getTargetDate() {
        return targetDate;
    }
 
    public void setTargetDate(String targetDate) {
        this.targetDate = targetDate;
    }
 
    public String getMarketList() {
        return marketList;
    }
 
    public void setMarketList(String marketList) {
        this.marketList = marketList;
    }
 
    public String getLaunguageList() {
        return launguageList;
    }
 
    public void setLaunguageList(String launguageList) {
        this.launguageList = launguageList;
    }
 
    public String getAction() {
        return action;
    }
 
    public void setAction(String action) {
        this.action = action;
    }
 
    public String getActionComment() {
        return actionComment;
    }
 
    public void setActionComment(String actionComment) {
        this.actionComment = actionComment;
    }
 
}
С уважением,

Чарли
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2015, 00:15
Ответы с готовыми решениями:

Spring, Rest, Json, LocalData
REST method POST вот такой json мапитса и все ок { &quot;mark&quot;:false, &quot;surname&quot;:&quot;test&quot;, &quot;name&quot;:&quot;test&quot;, ...

Spring MVC, Spring REST
Всем привет! Изучаю фреймворк Spring и возникло несколько вопросов в процессе, на которые не уверен однозначно, что до конца понимаю....

Spring Rest авторизация
Здравтсвуйте! Хочу сделать доступ на rest сервис через токены. Логика такая: 1) Клиент идет по /auth, передавая логин и пароль....

2
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.07.2015, 00:56
charlibaket, логи в дебаг переведите и смотрите что там не так.
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 3
19.07.2015, 14:03  [ТС]
Я уже разобрался с проблемой. Очень все было просто. Спасибо тебе KEKCoGEN - Самое лучшее надеяться на себя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2015, 14:03
Помогаю со студенческими работами здесь

Spring + hibenate, REST
Здравствуйте. Пишу учебный проект, spring + hibenate @Controller @RestController public class WebService { @Autowired ...

Google OAuth2 и spring rest
Всем привет, понадобилось мне сделать приложенице: рест сервис с аутентификацией + клиент на андройде. Андройд пользователя решил...

Spring Boot REST сервис
Создаю в учебных целях REST сервис и постоянно возникают различные вопросы, каждый раз создавать тему не хочется по этому буду спрашивать...

Не работает POST-запрос в Spring REST
Доброго времени суток. Я пишу простое веб-приложение и столкнулся со странной для меня ошибкой: при использовании POST-метода я получаю...

Spring REST: возврат ошибки пользователю
В интернете много примеров hello world'ов с одним сервисом где всё идеально и всё хорошо, но реальность не столь безоблачна... Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru