相关文章推荐
博学的显示器  ·  更改iframe ...·  4 月前    · 
怕考试的西瓜  ·  利用 Server-Sent Events ...·  6 月前    · 
踢足球的围巾  ·  ASP.NET Core 集成 ...·  1 年前    · 
正直的皮蛋  ·  Oops!!! - 简书·  1 年前    · 

由于昨天要写的文章没有写完,于是今天早上我四点半就“自然醒”了,心里面有事,睡觉也不安稳。洗漱完毕后,我打开电脑,正襟危坐,摆出一副要干架的态势,不能再拖了。

要写的文章中涉及到一串代码,关于 Undertow 的一个入门示例,贴出来大家看一下。

public class UndertowTest {
    public static void main(final String[] args) {
        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                }).build();
        server.start();

Undertow 是大名鼎鼎的 Red Hat(红帽子)公司开发的一款基于 NIO 的高性能 Web 服务器软件,不需要单独安装软件,只需要几行代码就可以在 Java 应用程序中启动一个 Web 服务,就像上面那段代码。

前提条件是你已经在 pom.xml 文件中引入了 Undertow 的依赖。

<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-core</artifactId>
    <version>2.0.28.Final</version>
</dependency>

没想到,代码在 IDEA 中运行后,竟然非正常退出了!

没有任何错误提示,真的是郁闷。主机名 localhost 没有问题,端口 8080 也没有被占用,但 main 方法在没有任何外力的因素下直接结束了。在浏览器地址栏中输入 http://localhost:8080 自然也无法显示“Hello World”。

回看 Run 面板中的输出信息,唯一让我感到疑惑的就是下面这行:

进程已结束,退出代码-1073741819 (0xC0000005)

正常来说,程序执行的输出结果如下所示:

进程已结束,退出代码0

退出代码是 0,表示程序正常结束;退出代码是 1073741819,它代表什么意思呢?

肯定是非正常呗。我第一时间想到的原因是,会不会是我代码写错了?于是查看了 Undertow 的官网,一个单词一个单词的检查,甚至上了 beyond compare 进行比较,也没有找到任何可疑之处。

折腾得够呛,于是不得不上了谷歌大法:

换了各种关键词,查阅了各种文章,没有找到可行的解决办法。谷歌无果,我想那就试试某度吧,结果搜到了游戏,天地良心啊。

搜索引擎靠不住,那就只能靠自己了。于是我写下了这段代码:

public class TestClose {
    public static void main(String[] args) {
        try {
            Thread.sleep(10000000);
        } catch (InterruptedException e) {
            e.printStackTrace();

运行结果大吃一惊。我揉了好几次眼睛,甚至上了倍清亮眼药水,结果也是非正常退出,错误代码和之前的 Undertow 一致。

搞什么嘛,这可是 Thread.sleep(10000000) 休眠大法啊,也能在一秒内结束,那一定不是 Undertow 的代码示例写错了,而是 IDEA 在作妖。

事到如今,我想起了被打入冷宫的 Eclipse。同样的代码,进程没有立即结束掉。

Undertow 的代码示例也没有问题,程序没有立即结束。

在浏览器中输入 http://localhost:8080 也能正常访问。

对比之后,问题就很确定了,出在 IDEA 身上,一定是它哪根神经错乱了。于是换了一下谷歌搜索的关键词,结果如下所示。

果然也有同行遇到了类似的问题,但文章中提到的原因竟然是金山词霸的划词翻译,这有点太扯了吧?

虽然有点扯,但的确值得试一试,毕竟山穷水尽了啊,况且我的电脑上真的安装了金山词霸,并且是打开状态。

那就退出试试呗,结果。。。。。。。。。。真的有用啊。

这次,进程没有主动结束,这是什么神奇的操作啊?人生第一次开始怀疑科学了!

既然和金山词霸有关系,那么我就脑洞打开了,是不是因为我装了汉化插件的关系?于是我把 IDEA 的汉化插件禁用,并且在重启之前打开了金山词霸。

结果证明没关系,进程主动结束了。

于是只好再次退出金山词霸。没想到,当我点击 Run 的小图标再次运行程序时,IDEA 竟然闪退了。看来它们之间的确有着不可告人的秘密,具体原因未知。

不管怎么说,这个莫名其妙的 bug 是解决了,有必要总结一波经验心得了,希望能够给小伙伴们在开发中一些启发。因为作为程序员,面对不会说话的计算机,有时候,真的会遇到一些难以名状的错误,把我们折腾得够呛。

经验一:保持冷静,切勿暴躁,心态失衡时容易捶鼠标,捶键盘,捶坏了,还得买新的。

经验二:先从自身代码找原因,复制粘贴有时候也会出现偏差,这时候,最好就和源头对比一下。如果肉眼发现不了,上比较工具,靠谱。

经验三:问谷歌,不要问某度。这年头,经常听到一些小伙伴们抱怨说,公司不允许上网,遇到问题时真的无从下手,我只能说这样的公司真的是闭关锁国啊。

经验四:换个环境试一试。同样的代码,环境不同,运行后的解决真有可能不同。IDEA 中出错,放 Eclipse 中试试;Windows 下出错,放 Linux 下试试;自己的环境有问题,放同事的环境下试试。

经验五:搜索的时候换一下关键词,真的是“柳暗花明又一村”啊。

经验六:重复以上。

我在上大专的时候就学了 Java,但由于基础差,学历低的原因在工作中吃了不少亏。没办法,只能后天弥补。输出倒逼输入,于是我就开启了自己的逆袭之路,不断地学习 Java 核心知识,并将所有心得都写成了文章,发布在博客平台上,没想到,这种坚持不懈的努力成就了一个更好的自己。

如果你也不甘平庸,不想被学历限制自我,那就请和我一起打怪进阶吧!

我不仅分享有趣的技术,还分享有益的程序人生,这些都将会帮助你从一名“屌丝”程序员进阶成为一名优秀的程序员。

非常期待和你的交流,送上我的微信号吧,qing_geee,有任何问题都欢迎随时和我交流,另外,我还组建了一些高质量的技术交流群,感兴趣的可以说下我邀请你加入。

我所有的文章都会第一时间发布在“沉默王二”公众号和 CSDN 博客,如果你恰好喜欢我的文章的话,请微信搜索“沉默王二”吧。

回复关键字“面试”,可以免费获取一份价值连城的面试攻略,美团大佬整理的

另外回复“并发”,还可以获取一份阿里大牛整理的 Java 并发编程实战指南,只给首次关注的你哦!

这不就是因为我之前改了下文件夹的名字然后现在程序按照该路径找不到东西了嘛!修改一下路径就ok! 所以像这种很宽泛的错误还是要仔细看自己具体的报错信息,然后再寻找适合自己的解决方案!不要盲目的试! 我在之前写过两篇我在VS2019调试的时候出现的:进程退出代码为-1073741819的文章但是没有说这到底是什么问题 1.关于VS2019调试问题:进程退出代码为-1073741819(已解决) 2.关于VS2019调试问题:进程退出代码为-1073741819询问 在经过这段时间用VS2019写代码,调试,最终为大家说明一下这个进程错误的原因! 首先我们看一下最基本的c语言代码的运行中出现的错误类型: 1.编译错误 #include<stdlib.h> #include<s 网上有的说是金山词霸,但是本人电脑未装金山词霸。排除此方案。 继续所搜解决办法:查询到错误代码含义:错误代码0xC0000005在Microsoft Windows中表示“访问冲突”,这相当于Linux的“分段错误”。 根据猜想是否为访问越界: 然后对程序错误的部分进行按行debug。 最终发现为vector访问越界。具体情景如下: 错误相关代码: vector&lt 9 个答案:答案 0 :(得分:22)这是个好消息!这意味着您的代码没有错误。你已经完成了它并且没有任何问题。 Pycharm在找不到任何错误(加上您给出的任何输出)时返回0并返回1以及遇到错误时的错误消息。编辑器和脚本的行为与交互式终端不同,当您运行某个功能时,它不会自动显示结果。你需要实际告诉它自己做。通常,您只需print结果。如果您使用print(data.shape),则应返回您对成功消... model1 = ExchangeBasic.read_step(".\model\model2.stp") model2 = ExchangeBasic.read_step(".\model\model3.stp") v = BasicViewer() v2 = BasicViewer() v.add(model1) v.add(model2) v.s... 我这边显示的是h5py包出现错误,且已经解决。 出现的问题是重复安装不同版本的h5py包,使用pip uninstall h5py反复卸载h5py包。 注意,**一定要等系统提示不存在h5py包才行,之后重新安装最新版本h5py包,使用pip install h5py安装即可。** 可能是安装其他包中自己安装上的不同版本h5py包。以上操作成功解决我的问题 运行程序之后原本前7个小时还能好好运行的代码突然运行不了 出现:进程结束,退出代码-1073741819 (0xC0000005) 正常都是:进程结束,退出代码0 解决办法: 关闭有道翻译和网易云音乐(离谱但有用) :open_book: 英文文档| 它是什么? compileflow-idea-designer是一个Idea插件。 它使您可以轻松完成编译流程引擎过程的编码设计和属性编辑。 Compileflow引擎开源地址: : 下载最新的插件安装包,下载地址:: 如果您是idea的2020版及更高版本,请下载此文件: XML源文件预览:支持编辑和预览XML源文件 流程友好的可视化:支持XML源文件进行Swing图预览,并将图片导出到本地 过程友好且可编辑:支持直接在Swing图画布中拖放节点,设计过程以及编辑节点属性,全局属性等。 大量显示Java代码:该过程最终将被编译成Java代码以执行,并且设计者支持XML到Java代码的预览效果 XML语法错误提示:如果打开的XML源文件中存在语法错误,则会在Java代码预览区域中提示该错误。 可扩展性:可以轻松扩展以 B站学习地址: 尚筹网是一个在线众筹平台,通过向普通大众募集资金来支持创业项目,支持者可以获得与支持金额相当的回报。该项目在学习路线中的定位是:从单一架构到分布式架构的过渡阶段,适合学完SSM框架后,需要通过一个项目巩固所学知识技能,并平滑过渡到分布式开发的小伙伴。 整个课程分后台管理系统和前台会员系统两部分: 1.后台管理系统是基于SSM整合的单一架构 2.前台会员系统是基于SpringBoot+SpringCloud的微服务架构 代码介绍 本项目由IDEA工具搭建完成。还原修改视频代码,使用IDEA能正常运行,同时为使用IDEA开发的朋友提供一个架构模型。 首先,这个不是错误,这是正常显示! 通常,程序运行都会提示你“代码为xxx”。对应了相应程序运行情况,是成功还是遇到了错误,根据相应错误也便于修改程序。可以复制这句话到网上搜索,都有详细的文章。 xxx.exe 是你的代码文件。 进程 xxx 是系统分配的。 只要记住,显示代码为 0 就是没有错误。 (1)工具: (2)选项: (3)调试: (4)勾选这个: 但是注意,勾选后就会导致程序运行成功后直接关闭小黑框,也就看不到结果了,所以要在主函数结束.