这种方式debug模式下启动,可以看到全栈的源代码,包括Jetty作为servlet容器里的调用代码。
pom文件添加以下Jetty依赖
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.15.v20140411</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.0.4</version>
</dependency>
package service;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.webapp.WebAppContext;
public class Server {
protected Server() throws Exception {
System.out.println("Starting Server");
/**
* Important: This code simply starts up a servlet container and adds
* the web application in src/webapp to it. Normally you would be using
* Jetty or Tomcat and have the webapp packaged as a WAR. This is simply
* as a convenience so you do not need to configure your servlet
* container to see CXF in action!
*/
org.eclipse.jetty.server.Server server = new org.eclipse.jetty.server.Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(9002);
server.setConnectors(new Connector[] {connector});
WebAppContext webappcontext = new WebAppContext();
webappcontext.setContextPath("/heart");
webappcontext.setWar("src/main/webapp");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[] {webappcontext, new DefaultHandler()});
server.setHandler(handlers);
server.start();
System.out.println("Server ready...");
server.join();
}
public static void (String args[]) throws Exception {
new Server();
}
}