您的位置:首页 > 编程语言 > Java开发

java代码启动jetty

2016-06-06 16:34 337 查看
记录下

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: