通过Jetty搭建一个简单的Servlet运行环境(一)

2014-11-24 09:17:09 · 作者: · 浏览: 0
最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境,发现用Jetty可以很方便的实现嵌入式Web container.这里我记录一下通过Jetty搭建简单Servlet运行环境的过程,希望对有同样需要的朋友有所帮助.
整个环境的代码可以在https://github.com/mcai4gl2/jettysetup找到. 代码包括了IntelliJ的项目文件,如果需要eclipse项目文件,请在 下载代码后运行 mvn eclipse:eclipse 来生成eclipse项目文件. (当然, 请在本地安装Maven).
设置Maven Dependency:
[plain]
org.eclipse.jetty
jetty-server
${jetty.version}
org.eclipse.jetty
jetty-servlet
${jetty.version}
org.springframework
spring-webm vc
${spring.version}
log4j
log4j
1.2.17
org.apache.commons
commons-io
1.3.2
设置servlet-context.xml:
[ html]
< xml version="1.0" encoding="UTF-8" >
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
一个简单的Main Class:
[java]
public static void main(String[] args) throws Exception {
try {
DOMConfigurator.configure(Thread.currentThread().getContextClassLoader().getResource("log4j.xml"));
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(7411);
server.setConnectors(new Connector[] {connector});
DispatcherServlet servlet = new DispatcherServlet();
servlet.setContextConfigLocation("classpath:servlet-context.xml");
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.addServlet(new ServletHolder("baseServlet", servlet), "/");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[] { context, new DefaultHandler()});
server.setHandler(handlers);
XmlWebApplicationContext wctx = new XmlWebApplicationContext();
wctx.setConfigLocation("");
wctx.setServletContext(servlet.getServletContext());
wctx.refresh();
context.setAttribute(XmlWebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wctx);
server.start();
log.info("Jetty embedded server started");
log.info("Press any key to stop");
System.in.read();
log.info("Stopping Server");
server.stop();
log.info("Server stopped");
} c