【发布时间】:2017-03-17 22:28:29
【问题描述】:
我正在开发一个简单的 Spring Boot RESTful 应用程序,除了列出所有客户(从 Mongodb 中检索所有客户)之外,一切都很好。使用我当前的代码,我应该能够检索所有客户。
每次我在浏览器中输入http://localhost:8080/customers 时都会出错。
来自我的 Java 类 CustomerRestController:
@CrossOrigin
@GetMapping("/customers")
public ArrayList<Customer> getCustomers()
{
customerDAO = new CustomerDAO();
return customerDAO.getCustomers();
}
function showAll()
{
$("#persons").html("");
$.getJSON("http://localhost:8080/customers/", function(data)
{
for (var i in data) {
$('#persons').append("<p>ID: " + data[i].id + "</p>")
$('#persons').append("<p>First name: " + data[i].firstName + "</p>")
$('#persons').append("<p>Last name: " + data[i].lastName + "</p><br>")
}
});
}
我班级 CustomerDAO 的一部分:
public class CustomerDAO
{
private ArrayList<Customer> customers;
public CustomerDAO()
{
customers = new ArrayList();
}
public ArrayList<Customer> getCustomers()
{
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("testdb");
MongoCollection<Document> col = database.getCollection("customers");
MongoCursor<Document> cur = col.find().iterator();
while(cur.hasNext())
{
Document doc = cur.next();
List list = new ArrayList(doc.values());
customers.add(new Customer((int) Float.parseFloat(list.get(1).toString()), list.get(2).toString(), list.get(3).toString()));
}
mongoClient.close();
return customers;
}}
我收到此错误:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Mar 17 23:48:40 EET 2017
There was an unexpected error (type=Internal Server Error, status=500).
For input string: "com.myproject.model.Customer"
【问题讨论】:
-
您能分享一下您的 CustomerDAO 课程吗?
-
看起来
list.get(1).toString()返回字符串com.myproject.model.Customer,而不是浮点数。也许您错过了List索引是从零开始的,实际上意味着Float.parseFloat(list.get(0).toString())? -
我不认为这是一个索引问题。我试过你的建议,下面的答案都没有解决这个问题:(
标签: java spring mongodb spring-mvc