使用Jetty运行.war文件

时间:2014-12-05 20:01:20

标签: java heroku jetty war

我正在努力创建运行Jetty应用程序并同时启动.war包的最基本示例。我发现的所有内容都只是将.war放在“$ JETTY_HOME / webapps”中,但我不确定如何验证“$ JETTY_HOME”是什么。我正在尝试扩展在https://github.com/heroku/java-getting-started.git找到的简单的heroku默认应用程序。我的目录结构:

src/
-- main/
---- java/
------ Main.java
target/
-- (lots of stuff in here)
pom.xml
Procfile
webapps/
-- workbench.war

我使用java -cp target/classes:target/dependency/* Main运行我的应用程序。

Main.javahttps://raw.githubusercontent.com/heroku/java-getting-started/master/src/main/java/Main.java相同。

如何让这个应用程序运行.war文件?每当我访问localhost:5000/workbench时,我只看到“Hello World”,我应该看到workbench.war中包含的Workbench应用程序。

2 个答案:

答案 0 :(得分:1)

我想您正在尝试在您的应用程序中运行jetty,并希望它能够提供war文件。检查此链接 http://www.eclipse.org/jetty/documentation/current/embedded-examples.html#embedded-one-webapp

答案 1 :(得分:1)

如果它只是一场战争,那么就这样做。

package org.eclipse.jetty.demo;

import org.eclipse.jetty.annotations.AnnotationConfiguration;
import org.eclipse.jetty.plus.webapp.EnvConfiguration;
import org.eclipse.jetty.plus.webapp.PlusConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.FragmentConfiguration;
import org.eclipse.jetty.webapp.JettyWebXmlConfiguration;
import org.eclipse.jetty.webapp.MetaInfConfiguration;
import org.eclipse.jetty.webapp.TagLibConfiguration;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.webapp.WebInfConfiguration;
import org.eclipse.jetty.webapp.WebXmlConfiguration;

public class EmbedMe
{
    public static void main(String[] args) throws Exception
    {
        int port = 8080;
        Server server = new Server(port);

        String warpath = "webapps/workbench.war";

        WebAppContext context = new WebAppContext();
        context.setResourceBase(warpath);
        context.setConfigurations(new Configuration[]
        { 
            new AnnotationConfiguration(), 
            new WebInfConfiguration(), 
            new WebXmlConfiguration(), 
            new MetaInfConfiguration(), 
            new FragmentConfiguration(),
            new EnvConfiguration(), 
            new PlusConfiguration(), 
            new JettyWebXmlConfiguration() 
        });

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