【问题标题】:Jersey REST service WAR in a Jetty Fat JarJetty Fat Jar 中的 Jersey REST 服务 WAR
【发布时间】:2013-11-13 07:30:32
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: java jersey jetty


    【解决方案1】:

    我相信您正在寻找的是将 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 端口可用。

    【讨论】:

    • Pergon,这正是我想要做的,但我的应用程序是 WAR 而不是 jar,因为它包含 Jersey REST 服务。我可以使用相同的方法使用您在链接中提供的信息的 WAR。如果我最终得到一个罐子而不是一场战争,那就太好了。
    • 请记住,jar 和 war 文件之间没有太大区别(基本上这些文件只是压缩的编译类......在战争的情况下,有 .jsp , .xml... 文件)。而是导出到 .war,导出到 .jar。确保在 main 方法中启动 jetty(检查链接)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多