java - Jetty Fat Jar 中的 Jersey REST 服务 WAR

标签 java jersey jetty

我与一个简单的 Jersey REST 服务发生了冲突,我需要将该 jar 与 Jetty 捆绑在一个 fat jar 中,以便它在共享后可以作为一个整体运行。有人可以指点我如何操作的说明吗?我无法找到与我的用例相关的内容。

提前致谢!

最佳答案

我相信您正在寻找的是将 Jetty 嵌入到您的 jar 中,这样您就可以通过以下方式启动您的应用程序:

java -jar myApp.jar

您的 REST 服务将启动并运行,无需在 Jetty(或 tomcat 等...)中部署 war 文件或关心其他依赖项。是吗?

如果是这样,请了解如何将 Jetty 嵌入到您的应用程序中。 下面是一些示例:

Embedding Jetty as a Servlet Container

Embedding Jetty

如果您能提供更多详细信息,那就太好了。

编辑

public static void main(String[] args) throws Exception {
    Server server = new Server(9001);
    Context context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.addServlet(new ServletHolder(new ServletContainer(new ResourceConfig(YourRestService.class)));
    server.start();
}

导出为 .jar,并在终端中运行:

java -jar myApp.jar

您的休息服务将在端口 9001 中可用。

关于java - Jetty Fat Jar 中的 Jersey REST 服务 WAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947891/

相关文章:

java - 是否存在零参数谓词?

java - 如何修改基于 Gradle 构建的 Jersey 项目的依赖关系?

使用 Jersey 的 Java Async REST Web 服务?

嵌入式 jetty 的 Java web.xml 位置

Jetty 8.1.2 启动延迟

java - 限制除 localhost 之外的 Web 应用程序的访问

java - 位置之间的仰角

java - 尝试连接到 TCP 服务器时出现套接字异常

java - 无法在 ubuntu 上启动 adt-bundle 来运行程序

java - AbstractMethodError 在 JAX-RS 上使用 UriBuilder