package cn.com.songjy.jetty;
import java.io.BufferedInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.NCSARequestLog;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.handler.RequestLogHandler;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.xml.XmlConfiguration;
import org.xml.sax.SAXException;
public class JettyDemo {
private static final Log log = LogFactory.getLog(JettyDemo.class);
private static final Properties config = new Properties();
static {
BufferedInputStream bufferedInputStream = null;
try {
bufferedInputStream = new BufferedInputStream(JettyDemo.class
.getClassLoader().getResourceAsStream("jetty.properties"));
config.load(bufferedInputStream);
} catch (IOException e) {
log.error(e.getMessage(), e);
} finally {
try {
if(null != bufferedInputStream)
bufferedInputStream.close();
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
}
public static void main(String[] args) throws Exception {
jetty_start();
}
public static void start_jetty() throws SAXException, IOException,
FileNotFoundException, Exception {
Server server = new Server();
// 指定自定义的jetty.xml路径
XmlConfiguration configuration = new XmlConfiguration(Server.class
.getClassLoader().getResourceAsStream(
config.getProperty("jetty.xml")));
configuration.configure(server);
server.start();
}
public static void jetty_start() {
try {
String jetty_home = "demo";// 这个就是你的项目发布时候的名字
//用户访问记录
HandlerCollection handlers = new HandlerCollection();
ContextHandlerCollection contexts = new ContextHandlerCollection();
RequestLogHandler requestLogHandler = new RequestLogHandler();
handlers.setHandlers(new Handler[]{contexts,new DefaultHandler(),requestLogHandler});
NCSARequestLog requestLog = new NCSARequestLog("./target/jetty-yyyy_mm_dd.request.log");
requestLog.setRetainDays(90);
requestLog.setAppend(true);
requestLog.setExtended(false);
requestLog.setLogTimeZone("GMT");
requestLogHandler.setRequestLog(requestLog);
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector
.setPort(Integer.parseInt(config.getProperty("jetty.port")));
server.setConnectors(new Connector[] { connector });
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/" + jetty_home);// 上下文路径 比如说/demo
// webapp.setResourceBase("./WebRoot");// 你的资源文件所在的路径 一般都在这下面
webapp.setResourceBase(config.getProperty("resourceBase"));
// webapp.setDefaultsDescriptor("./WebRoot/etc/webdefault.xml");
webapp.setDefaultsDescriptor(config.getProperty("webdefault.xml"));
server.setHandler(webapp);
server.addHandler(handlers);
server.start();
server.join();
} catch (InterruptedException e) {
log.error(e.getMessage(), e);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}
项目结构图
主要代码来自:
jetty的使用,在其基础上增加用户访问记录的
代码
相关阅读:
Jetty Documentation
实站Jetty
Jetty 的工作原理以及与 Tomcat 的比较
jetty嵌入式配置总结
- 描述: 项目结构图
- 大小: 28.8 KB
分享到:
相关推荐
jetty demo 简单 jetty eclipse demo .jetty 轻量级的web容器,在服务器开发中经常用到,在做服务器与服务器之间通讯的时候 。
jetty是一个轻便的嵌入式servlet容器。其启动运行非常简单。这是一个简单的Jetty例子程序。
jdk1.7 jetty9.2.13 maven3.3.3 很基础的例子,来自官网,写成了DEMO,更加方便学习。包括jetty作为Http 服务器和 Web 容器的基础实现。
基于 Jetty 的 WebSocket 服务器和 Java 和 JavaScript 客户端的简单示例。
jettyREST 是关于如何使用 Jetty + JAX-RS + Jersey + Servlet 3.0 作为 RESTful API 的技术堆栈的示例。 它非常基础,仅包含一个简单的设置脚手架(即它不一定是构建真正 RESTful 服务的示例)。 无论如何,您可以...
equinox-jetty-birt Jetty 上的示例 OSGi BIRT 查看器
Spark 码头服务器这是一个简单的示例,演示如何在以纱线客户端模式运行的 Jetty Web 服务器中嵌入SparkContext 。 这被证明是非常重要的,因为了解 Spark 类路径是如何构建的对于完成这项工作是非常必要的。 到目前...
JAX-RS / Jetty示例 这是一个小型Java项目,最初是为分布式Java(主要是Java EE和Spring)上的类开发的。 该代码由一个客户端和一个Web应用程序组成,该Web应用程序提供了简单的计算功能来说明如何使用Jersey来...
Camel Router WAR 项目 - 使用一点点 Docker 该项目包括一个作为 WAR 的示例路由。 还有一些额外的码头工人的东西。 您可以通过运行来构建 WAR mvn install 然后,您可以通过将 WAR 放入您喜欢的 Web 容器中来...
在Docker中运行一个简单的Jetty Web应用 按照说明 按照说明 跑步: Git将此仓库和CD克隆到其中。 码头工人组成 浏览器: boot2dockerIP:8080
###简单的配置示例 编辑ldap-login.conf,放入[jetty-home]/etc/ ldap-login.conf 示例: ldap { org.eclipse.jetty.plus.jaas.spi.SimpleLdapLoginModule required ldapURL="ldap://10.10.10.10:389" bindDn=...
此示例是使用jetty作为Servlet容器与集成测试一起运行的集成测试示例,jetty在8181端口上运行,但它是可配置的,示例涵盖: 一个带有HelloWorldServlet的简单Web项目,该项目具有GET和POST方法。 集成测试,可在...
示例servlet Java Web应用程序的简单示例,其中包含在Jetty中启动的gradle构建。 也是一个docker文件,用于使用Jetty中部署的代码构建容器。
这是一个从 H 2 O 开始的简单示例项目。 项目结构 ├─ gradle/ - Gradle definition files ├─ src/ - Source code │ ├─ main/ - Main implementation code │ │ ├─ java/ │ ├─ test/ - Test code │ ...
Spring WebMVC / Jetty示例 这是一个小型Java项目,最初是为分布式Java(主要是Java EE和Spring)上的类开发的。 该代码由一个客户端和一个Web应用程序组成,该Web应用程序提供了简单的计算功能来说明如何使用...
根据慕课网的学习,写啦一个类似的用maven运用springmvc的简单实例 使用jetty进行测试 在命令行进入该项目 输入:mvn jetty:run
简单休息原型 一个 Maven 原型,用于快速设置由 Jetty + Jersey + Spring DI 提供支持的 RESTful web 服务 为什么是 Maven 原型?... 原型还创建了一个示例测试来启动真正的 Jetty 服务器,因此每个测试都可能能够验证
Spring with Swagger 示例该项目是将 Swagger 与 Spring 3 应用程序(与 Jersey 2)... 自己动手并使用您最喜欢的 IDE 构建和部署它使用嵌入式 Jetty并立即使用mvn jetty:run 检查以下 URL(在本地主机上运行此示例):
OSGI环境搭建以及在搭建环境的基础上面附带一个小例子,让你熟悉osgi开发流程