Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么java Web服务器BufferedReader在很多方面都失败了?_Java_Sockets_Plugins_Webserver_Minecraft - Fatal编程技术网

为什么java Web服务器BufferedReader在很多方面都失败了?

为什么java Web服务器BufferedReader在很多方面都失败了?,java,sockets,plugins,webserver,minecraft,Java,Sockets,Plugins,Webserver,Minecraft,TL;博士 我已经遵循了用java创建Web服务器的步骤。 但是,以下部分总是失败,因此,整个web服务器崩溃或挂起此while循环: BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()); StringBuilder requestBuilder=新建StringBuilder(); 弦线; 而(!(line=br.readLine()).isEmpty()){ requestBu

TL;博士

我已经遵循了用java创建Web服务器的步骤。
但是,以下部分总是失败,因此,整个web服务器崩溃或挂起此while循环:

BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream());
StringBuilder requestBuilder=新建StringBuilder();
弦线;
而(!(line=br.readLine()).isEmpty()){
requestBuilder.append(第+行“\r\n”);
}
有时,它会在while循环行中抛出NullPointerException。有时它只是挂断或崩溃。有时做任何事情都需要很长时间,有时也很有效。我还尝试检查
字符串是否为
null
,或者它是否为
==”
,但这也会导致服务器崩溃

更多信息:
这段代码在JDK1.8上作为插件运行在Minecraft服务器上的一个单独线程(Runnable)上。
我不知道该怎么办了。 我试了很多,但都不管用

我希望有人能帮助我

致以最良好的祝愿

马克斯

编辑:

我当前的“测试循环”状态如下:

stringline=br.readLine();
while(行!=null){
if(line.isEmpty()){
行=空;
}否则{
requestBuilder.append(行);
line=br.readLine();
}
}
它工作并加载网站。 但在这之后,它就崩溃了。 我在
guessContentType()
函数中加入了一个记录器(您可以在我在本问题开头提到的教程中看到它)。 看起来浏览器正在请求index.html文件,从服务器获取该文件后,它会请求导入的所有CSS和js(资产)文件。此时,服务器仍在运行,但在加载所有资产大约3秒钟后,有人再次请求index.html文件,然后服务器崩溃

编辑2: 还有一件事要提。 我只是试着通过邮递员提出一个get请求。
结果是,当通过postman而不是浏览器发出GET请求时,它会在postman中返回一个EconReset错误,我可以看到第一次编辑中描述的杀死服务器的
index.html
文件。

您是否尝试过用此
替换您的条件((line=br.readLine())!=null&&!line.isEmpty())
?@YassinHajaj请查看编辑。第二版看起来“正常”,但不清楚它是否符合您的要求。我认为你需要写一个[最小可复制的例子](ttps://stackoverflow.com/help/minimal-reproducible-example)(在Minecraft之外运行)这样我们就可以了解您实际要做的事情。话虽如此,看起来您正在尝试实现一个web服务器(或web客户端)在Java中,不使用任何Java SE HTTP支持库或第三方HTTP库。我的建议是:不要。你不需要重新发明轮子。即使一些教程声称要向您展示如何做到这一点。(事实上,该教程只触及了表面。)@StephenC您能推荐一个关于如何使用JavaSE HTTP库的教程吗?因为我不想包含第三方库