我有一些非常奇怪的问题。我想调用名为document.getElementById('inputTextToSave').innerHTML= output0 + output + output2;
的方法,但不幸的是服务器抛出错误,但我不知道为什么。
这是我的示例REST控制器
create
}
我无法添加用户,因为服务器会抛出"内部服务器错误",但我不知道,为什么。
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import pl.toby.model.User;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/index")
public class HelloController {
private List<User> users;
public HelloController() {
users = Arrays.asList(
new User(1, "Jan", "Kowalski"),
new User(2, "Anna", "Nowak"),
new User(3, "Andrzej", "Przybylski"),
new User(4, "Maciej", "Adamczyk"),
new User(5, "Jacek", "Król")
);
}
// here is method, that I can create user
// i call it with /index/create request URI
@RequestMapping(value = "/create", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public List<User> create(@RequestBody User user) {
users.add(user);
return users;
}
修改
行动。我忘了。这是我的Tomcat错误日志
{
"timestamp": 1493548738275,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.UnsupportedOperationException",
"message": "No message available",
"path": "/index/create"
}
答案 0 :(得分:5)
您使用的是Arrays.asList
方法,这里是Javadoc所说的内容:
返回由指定数组支持的固定大小的列表。 (改为 返回的列表&#34;通过&#34;到数组。)此方法充当 基于数组和基于集合的API之间的桥梁,结合起来 与Collection.toArray()。返回的列表是可序列化的 实现RandomAccess。
因此,它返回一个固定大小的列表,由数组支持。您无法执行add
/ remove
操作的列表(这就是为什么会抛出UnsupportedOperationException
)。如果要添加或删除元素,请尝试以下操作:
users = new ArrayList<>();
users.add(new User(1, "Jan", "Kowalski"));
users.add(new User(2, "Anna", "Nowak"));
users.add(new User(3, "Andrzej", "Przybylski"));
users.add(new User(4, "Maciej", "Adamczyk"));
users.add(new User(5, "Jacek", "Król"));
答案 1 :(得分:2)
这不是Spring的问题,而是你如何初始化Arraylist。 您可以使用以下代码重现问题
public static void main(String[] args) {
List<String> users = Arrays.asList(
"a","b"
);
users.add("c");
}
这是因为您使用Arrays.asList
将列表初始化为固定列表并且无法修改
返回由指定数组
支持的固定大小列表
如果您修改了添加列表中元素的方式,您将能够尝试端点
示例:
users = new ArrayList<>();
users.add(new User(1, "Jan", "Kowalski"));
users.add(new User(2, "Anna", "Nowak"));
users.add(new User(3, "Andrzej", "Przybylski"));
users.add(new User(4, "Maciej", "Adamczyk"));
users.add(new User(5, "Jacek", "Król"));