【发布时间】:2019-01-30 21:25:31
【问题描述】:
我正在尝试在 Spring Boot 中运行 JSP,但显示的只是 welcome 这个词,而不是我的实际内容。在调用 MongoDB 之后调用 JSP。当我从我的 Java 代码调用 MongoDB 时,我也会遇到这些异常。
com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
at com.mongodb.internal.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:553) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:444) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:295) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:106) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:63) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongo-java-driver-3.9.1.jar:na]
at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
Caused by: java.net.SocketTimeoutException: Read timed out
at java.base/java.net.SocketInputStream.socketRead0(Native Method) ~[na:na]
at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:na]
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:na]
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:na]
at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:109) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:570) ~[mongo-java-driver-3.9.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:441) ~[mongo-java-driver-3.9.1.jar:na]
... 9 common frames omitted
welcome.jsp
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en" ng-app="employeeApp">
<head>
<title>Frank's App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="app.js"></script>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<h2>Frank's App</h2>
<div ng-app="myApp" ng-controller="myCtrl">
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Employee Number</th>
<th>Pay Rate</th>
</tr>
<tr ng-repeat="employee in employees">
<td>{{ employee.firstName }}</td>
<td>{{ employee.lastName }}</td>
<td>{{ employee.empNumber }}</td>
<td>{{ employee.payRate }}</td>
</tr>
</table>
</div>
</body>
控制器代码:
@RequestMapping("/welcome")
public String welcome(Model model) {
model.addAttribute("employees", getEmployees());
return "welcome";
}
@RequestMapping("/getEmployees")
public List<Employee> getEmployees() {
MongoDatabase db = getDatabase();
MongoCollection<Document> collection = db.getCollection(COLLECTION);
Document query = new Document();
List<Employee> employees = collection.find(query, Employee.class).into(new ArrayList<Employee>());
return employees;
}
private MongoDatabase getDatabase() {
CodecRegistry pojoCodecRegistry = org.bson.codecs.configuration.CodecRegistries.fromRegistries(
MongoClientSettings.getDefaultCodecRegistry(), org.bson.codecs.configuration.CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build()));
MongoDatabase database = mongo.getDatabase("testdb").withCodecRegistry(pojoCodecRegistry);
return database;
}
【问题讨论】:
标签: spring mongodb spring-boot jsp