JavaWeb之Jetty和Tomcat内嵌服务器实现
来源:互联网 发布:手机隔墙听软件 编辑:程序博客网 时间:2024/06/03 16:32
在开发Java web项目时候,有时候需要使用内嵌服务器作为来运行web程序。
现在介绍Java中常用的两种服务器Tomcat和jetty,实现web服务器的内嵌.
1.Jetty服务器的内嵌
Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty。
步骤:
(1).首先下载jetty的jar包。
我下载的是jetty-9.1.2.v20140210版本,
下载地址:
http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.1.2.v20140210/jetty-distribution-
9.1.2.v20140210.zip
(2).新建Java项目
项目结构:
(3).解压,添加libs文件夹下除了文件夹其他所有的jar包和 lib/jsp文件夹下所有jar包到项目中去
(4).编写jetty启动类
import org.eclipse.jetty.server.Connector;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.ServerConnector;import org.eclipse.jetty.util.thread.QueuedThreadPool;import org.eclipse.jetty.webapp.WebAppContext;import java.io.File;public class Main { public static void main(String[] args) { System.out.println("initJetty........."); initJetty(); } public static void initJetty() { try { QueuedThreadPool threadPool = new QueuedThreadPool(); threadPool.setMaxThreads(300); threadPool.setMinThreads(3); Server server = new Server(threadPool);// 创建jetty web容器 server.setStopAtShutdown(true);// 在退出程序是关闭服务 // 创建连接器,每个连接器都是由IP地址和端口号组成,连接到连接器的连接将会被jetty处理 ServerConnector connector = new ServerConnector(server);// 创建一个连接器 connector.setHost("127.0.0.1");// ip地址 connector.setPort(8080);// 连接的端口号 connector.setName("connector0"); server.addConnector(connector);// 添加连接 // 配置服务 WebAppContext context = new WebAppContext();// 创建服务上下文 context.setContextPath("/");// 访问服务路径 http://{ip}:{port}/ context.setConfigurationDiscovered(true); context.setClassLoader(Thread.currentThread().getContextClassLoader()); String baseDir = Thread.currentThread().getContextClassLoader() .getResource("").getPath();// context.setWar("WebRoot"); context.setDescriptor(baseDir + File.separator + "/WEB-INF/web.xml");// 指明服务描述文件,就是web.xml // context.setDescriptor("/E:/workspace/strutsDemo/target/classes/\\/WEB-INF/web.xml");// // 指明服务描述文件,就是web.xml context.setResourceBase(System.getProperty("user.dir") + "/WebContent");// 指定服务的资源根路径,配置文件的相对路径与服务根路径有关 server.setHandler(context);// 添加处理try { server.start();// 开启服务 server.join(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } }}
(5)运行结果:2.Tomcat服务器的内嵌
Tomcat是一个Java实现的开源的servlet容器可以嵌入在Java应用程序中,在Java程序中调用Jetty。
步骤:
(1).首先下载Tomcat的jar包。
我下载的是apache-tomcat-8.5.23-embed.zip版本,
下载地址:
http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.23/bin/embed/apache-tomcat-8.5.23-embed.zip
(2).新建Java项目
项目结构:
(3).解压,添加libs文件夹下除了文件夹其他所有的jar包和 lib/jsp文件夹下所有jar包到项目中去
(4).编写jetty启动类
import org.apache.catalina.LifecycleException;import org.apache.catalina.core.AprLifecycleListener;import org.apache.catalina.core.StandardServer;import org.apache.catalina.startup.Tomcat;import javax.servlet.ServletException;import java.io.File;public class EmbeddedTomcat { private static Tomcat tomcat; public static Tomcat getTomcat() { return tomcat; } private static StandardServer server; private static AprLifecycleListener listener; public static void main(String[] args) throws LifecycleException, ServletException { tomcat = new Tomcat(); // 主机名,或ip tomcat.setHostname("localhost"); // 设置端口,80为默认端口 tomcat.setPort(8989); // tomcat用于存储自身的信息,可以随意指定,最好包含在项目目录下 tomcat.setBaseDir("."); // 建立server参照tomcat文件结构 server = (StandardServer) tomcat.getServer(); listener = new AprLifecycleListener(); server.addLifecycleListener(listener); // 将appBase设为本项目所在目录 //tomcat.getHost().setAppBase("."); tomcat.getHost().setAppBase( System.getProperty("user.dir") + File.separator + "."); // 第二个参数对应docBase为web应用路径,目录下应有WEB-INF,WEB-INF下要有web.xml tomcat.addWebapp("", "WebContent"); // 启动tomcat tomcat.start(); // 维持 tomcat.getServer().await(); }}
(5)运行结果:
- JavaWeb之Jetty和Tomcat内嵌服务器实现
- Tomcat服务器之于javaweb
- Jetty和Tomcat服务器运行Web项目
- tomcat,jetty服务器相关
- springboot内嵌容器的tomcat和jetty的切换原理
- JavaWeb开发之二:Tomcat服务器
- JavaWeb学习心得之Tomcat服务器(一)
- JavaWeb学习心得之Tomcat服务器(二)
- 项目内嵌Jetty实现优化部署
- JavaWeb基础知识:Tomcat服务器和http协议
- 【JavaWeb】认识和学习Tomcat服务器
- 分别使用Jetty和Tomcat搭建Solr服务器(Setting up Solr Server with Jetty or Tomcat)
- 使用jetty作为内嵌服务器启动项目
- Embedding Jetty 创建简单的内嵌服务器
- java使用jetty作为内嵌服务器启动项目
- jetty https服务器实现
- jetty和tomcat
- 移动 Javaweb 服务器 Tomcat
- zookeeper安装过程
- Pip 国内源的使用
- Java并发编程之原子变量
- 命令模式
- Akka(29): Http:Server-Side-Api,Low-Level-Api
- JavaWeb之Jetty和Tomcat内嵌服务器实现
- 数组如何模拟链表
- 给定一个数组nums,写一个函数将所有的值移动0到最后,同时保持非零元素的相对顺序不变
- Java设计模式
- (转载)浅谈Java中的hashcode方法
- UML类图关系(泛化、继承、实现、聚合、组合、依赖)
- Struts2初体验
- JavaScript开心消消乐中的迭代算法
- 排序算法(一)直接插入排序