如何从正在运行的JAR文件中读取war目录?

时间:2017-08-24 16:59:33

标签: java jar jetty executable-jar embedded-jetty

我正在创建一个独立的嵌入式码头服务器。所以基本上我正在为我的嵌入式jetty类提供一个WebAppContext,以便它可以从war目录中读取WEB-INF并运行服务器。我将项目打包为JAR并尝试从命令行运行它。 JAR运行但服务器请求不通过(404错误)。当我使用Netbeans内部的maven命令执行它时,服务器运行得很好。所以我想在运行独立JAR时无法正确定位资源。我试过在JAR文件本身添加war文件夹资源,硬编码本地路径,什么不是。现在似乎没什么用。如果有人遇到这个问题并有解决方案,我会非常感激。 这是代码:

public static void main(String[] args) throws Exception {

        int port = 8080;
        Server server = new Server(port);

        String wardir = "webapps/war";
        //wardir = wardir.replace("//", "/");
        WebAppContext context = new WebAppContext();
        context.setResourceBase(wardir);
                String webXML = "/WEB-INF/web.xml";
               // webXML = webXML.replace("//", "/");
        context.setDescriptor(wardir + webXML);
        context.setConfigurations(new Configuration[] {
                new AnnotationConfiguration(), new WebXmlConfiguration(),
                new WebInfConfiguration(), new TagLibConfiguration(),
                new PlusConfiguration(), new MetaInfConfiguration(),
                new FragmentConfiguration(), new EnvConfiguration() });

        context.setContextPath("/");
        context.setParentLoaderPriority(true);
        server.setHandler(context);
        server.start();
        server.dump(System.err);
        server.join();  
    } 
}

0 个答案:

没有答案