我经常在阅读网页时遇到"早熟EOF"异常.
以下是StackTrace
java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:556)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:600)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:687)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2968)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at Utilities.getPage(Utilities.java:24) while ((line = rd.readLine()) != null) {
at TalkPage.<init>(TalkPage.java:15)
at Updater.run(Updater.java:65)
Run Code Online (Sandbox Code Playgroud)
以下是getPage()方法
public static String getPage(String urlString) throws Exception {
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) { …Run Code Online (Sandbox Code Playgroud) 我使用广度优先搜索构建了一个8拼图解算器.我现在想要修改代码以使用启发式.如果有人能回答以下两个问题,我将不胜感激:
可解性
我们如何确定8拼图是否可以解决?(给定起始状态和目标状态)这就是维基百科所说的:
不变量是所有16个方格的排列的奇偶性加上从右下角开始的空方格的出租车距离(行数加上列数)的奇偶校验.
不幸的是,我无法理解这意味着什么.理解起来有点复杂.有人可以用更简单的语言解释它吗?
最短的解决方案
给定启发式,是否可以保证使用A*算法提供最短的解决方案?更具体地说,打开列表中的第一个节点是否总是具有深度(或移动的数量如此之大),这是打开列表中存在的所有节点的深度的最小值?
启发式是否应满足上述陈述的某些条件?
编辑:可接受的启发式方法如何始终提供最佳解决方案?而我们如何测试一个启发式是否受理?
我会使用这里列出的启发式方法
Manhattan Distance
Linear Conflict
Pattern Database
Misplaced Tiles
Nilsson's Sequence Score
N-MaxSwap X-Y
Tiles out of row and column
Run Code Online (Sandbox Code Playgroud)
有关Eyal Schneider的说明:

在处理JSF ajax请求时抛出异常时,如何处理异常并访问堆栈跟踪?现在,当JSF项目阶段设置为Development时,我只在JavaScript警报中获取异常类名称和消息.更糟糕的是,当JSF项目阶段设置为Production时,没有任何视觉反馈,并且服务器日志不显示有关异常的任何信息.
如果这是相关的,我在Netbeans中使用GlassFish.
是否可以覆盖 Spring Hibernate 验证器的默认响应 POJO?
当前,当验证失败时,会向客户端返回一个非常大的响应,如下所示。但我不希望客户端提供休眠验证器的完整错误响应,而是发送一些关于错误消息的键值对。
{
"timestamp": "2018-05-28T18:12:56.705+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [
"NotBlank.abc.xyz",
"NotBlank.xyz",
"NotBlank.java.lang.String",
"NotBlank"
],
"arguments": [
{
"codes": [
"abc.xyz",
"xyz"
],
"arguments": null,
"defaultMessage": "transactionId",
"code": "transactionId"
}
],
"defaultMessage": "xyz is mandatory parameter , please provide appropriate value",
"objectName": "abc",
"field": "xyz",
"rejectedValue": "",
"bindingFailure": false,
"code": "NotBlank"
}
],
"message": "Validation failed for object='xyz'. Error count: 1",
"path": "/path/create/1"
}
Run Code Online (Sandbox Code Playgroud)