java代码启动jetty

 记录下

	<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-server</artifactId>
			<version>${jetty.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-webapp</artifactId>
			<version>${jetty.version}</version>
			<scope>test</scope>
		</dependency>

 

 

public class MonitorJetty {
    /** port */
    private int port = 8090;

    protected String charset = "UTF-8";

    public MonitorJetty() {
    }

    public MonitorJetty(int port) {
        this.port = port;
    }

    public MonitorJetty(int port, String charset) {
        super();
        this.port = port;
        this.charset = charset;
    }

    /**
     * 服务器启动。
     * 
     */
    public void start() {

        // 设置Jetty日志
        System.setProperty("org.eclipse.jetty.util.log.class", StdErrLog.class.getName());

        HandlerCollection handlers = new HandlerCollection();

        Server server = new Server(this.port);



        RequestLogHandler requestLogHandler = new RequestLogHandler();

        // 设置context
        WebAppContext context = new WebAppContext();
        context.setContextPath("/");

        //这个地址的加载方式,eclipse和idea目录有区别,跟maven导入有关
        //context.setResourceBase("./src/main/webapp");
        //context.setDefaultsDescriptor("/src/test/java/jetty/webdefault.xml");

        context.setResourceBase("./monitor/web/war/src/main/webapp");
        context.setDefaultsDescriptor("monitor/web/war/src/test/java/jetty/webdefault.xml");


        // PS:嵌入式的Jetty,应用当前工程的ClassPath,如果不设置将使用WebAppClassLoder,WEB-INF/lib目录加载jar。
        context.setClassLoader(Thread.currentThread().getContextClassLoader());
        context.setParentLoaderPriority(true);

        handlers.setHandlers(new Handler[] { context, new DefaultHandler(), requestLogHandler });
        server.setHandler(handlers);
        
        // 启动Server
        try {
            server.start();
            server.join();
        } catch (Exception e) {
        }

    }

    public static void main(String[] args) {
    	MonitorJetty server = new MonitorJetty();
        server.start();
    }
}

 

支持servlet3.0注解启动

http://www.eclipse.org/jetty/documentation/current/using-annotations-embedded.html

添加依赖

<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-annotations</artifactId>
    <version>9.3.17.RC0</version>
</dependency>
<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-plus</artifactId>
    <version>9.3.17.RC0</version>
</dependency>
org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
        classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
        classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");

 

http://stackoverflow.com/questions/13222071/spring-3-1-webapplicationinitializer-embedded-jetty-8-annotationconfiguration

转载于:https://my.oschina.net/greki/blog/687752

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值