程序化 Jetty 关闭

2024-01-17

如何以编程方式关闭嵌入式jetty服务器?

我像这样启动码头服务器:

Server server = new Server(8090);
...
server.start();
server.join();

现在,我想根据请求关闭它,例如http://127.0.0.1:8090/shutdown http://127.0.0.1:8090/shutdown我该如何干净利落地做呢?

通常提出的解决方案是创建一个线程并从该线程调用 server.stop()。 但我可能需要调用 Thread.sleep() 以确保 servlet 已完成处理关闭请求。


我找到了一个非常干净整洁的方法here http://www.petervannes.nl/files/084d1067451c4f9a56f9b865984f803d-52.php

神奇的代码片段是:-

        server.setStopTimeout(10000L);;
        try {
            new Thread() {
                @Override
                public void run() {
                    try {
                        context.stop();
                        server.stop();
                    } catch (Exception ex) {
                        System.out.println("Failed to stop Jetty");
                    }
                }
            }.start();

因为关闭是从单独的线程运行的,所以它不会自行失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序化 Jetty 关闭 的相关文章

  • HashMap不写入数据库

    我尝试在我的数据库中写入 但只写入发件人和消息 我不明白为什么会发生这种情况 我认为问题出在我使用 sendMessage 的地方 我认为问题是我没有什么可以做的读 写其他用户的主键 我在数据库中写入消息的活动 public class M
  • 无法解析类型为 xxx 的任何 bean;限定符:[@javax.enterprise.inject.Any()]

    我有一个 LoginProvider 接口 public interface LoginProvider boolean login String username String password 以及两种不同的实现 public clas
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 如何使用 SimpleDateFormat 解析多种格式的日期

    我正在尝试解析文档中的一些日期 用户似乎以类似但不完全相同的格式输入了这些日期 以下是格式 9 09 9 2009 09 2009 9 1 2009 9 1 2009 尝试解析所有这些内容的最佳方法是什么 这些似乎是最常见的 但我想让我困扰
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 为什么 java 编译器不报告 Intellij 中多播表达式的未经检查的强制转换警告?

    为什么下面的代码没有报告 Intellij IDEA 的未经检查的警告jdk 1 8 0 121自从Supplier
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • Java 8 中函数式接口的使用

    这是来自的后续问题Java 8 中的 双冒号 运算符 https stackoverflow com questions 20001427 double colon operator in java 8其中 Java 允许您使用以下方式引用
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false

随机推荐

  • java中合并排序的问题

    我是 stackoverflow 的新手 我需要一些帮助来编写一个程序来对可比数组列表进行合并排序 我已经在这段代码上工作了几个小时 但没有成功 该程序需要正确运行 因为我正在为计算机科学课程做它 而下一个作业要求我们测试不同类型的效率 这
  • 发送自定义 IQ 时来自服务器的服务不可用响应

    我正在尝试从 android 发送带有 IQ 的自定义信息 所以我使用下面的代码来发送自定义 IQ 消息 public void onClick View arg0 CustomIQ req new CustomIQ req myData
  • Firefox 中的“您的证书”存储在哪里?

    我应该在 Firefox 的 我的证书 部分安装一些证书 但那里没有 如果我能找出存储的位置 也许在我的配置文件目录中的某个地方 那么我可以尝试从备份中恢复 这将是一个更好的问题http superuser com http superus
  • 核心数据 - 无法将空字符串设置为属性的默认值

    我的数据模型中有一个实体 其字符串属性当前是可选的 我想将其转换为默认值为空字符串的必需属性 正如其他人发现的那样 在 Xcode Core Data 数据建模器中将默认值留空会导致验证错误 因为设计者将其解释为 NULL 但尝试将 或 作
  • Dagger 2 注入两个改造对象

    我在使用 MVP 时将 Dagger 2 与 Retrofit2 库结合使用 一切都很顺利 直到我尝试集成另一个服务 基本上我尝试将另一个改造对象初始化到另一个服务 我跟着这个answer https stackoverflow com q
  • NuxtJS - 在布局或组件中使用 asyncData 方法

    我如何使用asyncData在布局或组件中 显然被禁止 因为我的侧边栏组件是在默认布局中使用的 所以我需要使用asyncData显示来自后端的数据 如果我使用 Vuex 来获取数据 我不知道如何在每个页面上使用全局来获取数据 我的布局组件注
  • 将 DIV 更改为“position:fixed”,然后将其更改回“static”并显示其余的 DIV

    我有几个 div 经过一些滚动后 第二个 div 将是 position fixed 再次滚动后 它将回到 position static 但问题是 接下来是第四个 div 而不是第三个 因为当我们在第二个 div 时它已经通过滚动过去了
  • YouTube API v3.0:如何确定视频是否“按次付费”?

    我正在使用YouTube Python API v3 0 使用特定视频 ID 查询 YouTube 我想知道结果中列出的哪些视频是付费内容 其中有一些电视节目 我已经浏览了 视频 对象参数 https developers google c
  • 使用 libsox 对 wav 文件进行降采样

    我正在尝试使用 Sox 库 C 程序将 16KHZ 16 位签名 PCM 编码波形文件转换为 8KHz 8 位 mu 编码 wav 文件 http sox sourceforge net http sox sourceforge net 从
  • 跳过 C++ 函数中的一些参数?

    我有一个 C 函数 有 5 个参数 所有参数都有默认值 如果我传入前三个参数 程序将为最后两个参数分配一个默认值 有没有办法传递 3 个参数 并跳过中间的一个 给出第一个 第二个和第五个参数的值 不直接 但你也许可以使用 std bind
  • 使用访问令牌在私人存储库上获取 Github GET

    我的组织中有一个私人存储库 我需要提供访问权限 我希望能够通过 GET 请求 浏览器 访问文件 我没有终端或卷曲或任何其他工具 我创建了一个链接到我的组织的虚拟帐户 我去了https github com settings tokens h
  • 如何调整 Spring Data JDBC 的 NamingStrategy

    我如何调整 Spring Data JDBCNamingStrategy表现得像 Hibernate 一样PhysicalNamingStrategy 我有以下实体 Campus domain model class Handles inf
  • 是否可以制作 HTML 标签? [复制]

    这个问题在这里已经有答案了 是什么阻止我这样做
  • 如何在 ReactiveUI 7 中正确直接调用 ReactiveCommand.Execute()?

    我正在尝试将我的项目从 ReactiveUI 6 5 转换为版本 7 在旧版本中我调用 var command ReactiveCommand Create if command CanExecute null command Execut
  • gitignore 是否会阻止 git 拉取文件?

    对于 gitignore 文件的功能有以下几种描述 gitignore 指定要忽略的故意未跟踪的文件 git https git scm com docs gitignore 有时 您不希望 Git 将某些文件签入到 GitHub 有几种方
  • 字符串replace()和replaceAll()之间的区别

    java lang String 之间有什么区别replace and replaceAll 方法 除了后者使用正则表达式 对于简单的替换 例如替换 with 有什么区别吗 In java lang String https docs or
  • Youtube API V3 Java 任何可能无需调用浏览器上传视频

    嗨 我希望有人可以帮助我 我的本地计算机上有一个 Java 应用程序 我正在尝试将视频上传到 YouTube 将视频上传到经过身份验证的用户的频道 使用 OAuth 2 0 授权请求 效果很好 源代码来自Youtube API V3 类名称
  • 覆盖烧瓶蓝图中的路线

    有一个蓝图 定义了很多有用的路线 但我无法控制它 无法以任何方式更改它的代码 尝试在不同的应用程序中重用它 但蓝图的端点之一必须重载 我怎样才能做到这一点 我尝试在现有路线的基础上添加一条新的蓝图路线 blueprint route my
  • 行背景颜色 GtkTreeView 小部件

    我正在尝试将 gtk 树视图小部件中禁用的行着色为浅灰色 根据我所读到的内容 我应该设置相应 cellrenderer 的 background gdk 属性并将其绑定到模型列 这种作品 Gtk CellRendererText textR
  • 程序化 Jetty 关闭

    如何以编程方式关闭嵌入式jetty服务器 我像这样启动码头服务器 Server server new Server 8090 server start server join 现在 我想根据请求关闭它 例如http 127 0 0 1 80