外置容器
1.下载:
wget http://dist.codehaus.org/jetty/jetty-6.1.14/jetty-6.1.14.zip
unzip jetty-6.1.14.zip
2.配置JETTY_HOME
vim ~/.bashrc
JETTY_HOME=/home/inter12/installs/dev/jetty
JETTY_CONF=$JETTY_HOME/etc
JETTY_LOGS=$JETTY_HOME/logs
export JETTY_HOME
export JETTY_CONF
export JETTY_LOGS
3.就可以启动了
cd $JETTY_HOME/bin
sh jetty.sh start //启动
sh jetty.sh start //查看是否正常启动
其他常见的命令有:start|stop|run|restart|check|supervise
默认端口是8080,具体配置后面再说。
通过浏览器来看下:http://127.0.0.1:8080/ 就可以看到 jetty默认的欢迎页面了! 很简单,类似于 tomcat
首页中提供了一些demo和一些常用说明,例如如何配置JNDI等信息!
4.几个重要的目录
$JETTY_HOME/etc 配置文件 ---- tomcat 下的conf目录
4.1 /etc/jetty.xml 这个为比较重要的配置文件。具体打开文件我们可以看:
1)连接器 对外暴露的服务,其中包含了端口,最大等待时间等信息。提供了两种方式,默认是NIO的处理,若是不行的话,就去除下面的注释,启用性能稍微差点的BIO,目录下存在一个jetty-bio.xml目录,只需要使用这个即可!
<Call name="addConnector">
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
2)具体后端的处理类,connector负责通信调度,这个负责处理!
<Set name="handler">
<New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
3)配置上下文的路径,就是我们下面将会提到了 contexts目录的位置!
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.ContextDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
4)默认配置的webapps 目录, 若是想自己部署的话,需要修改这个值
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.WebAppDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/webapps</Set>
5)请求日志的存放地址
<Ref id="RequestLog">
<Set name="requestLog">
上面就是jetty.xml中几个重要的配置了!
-----------------------------------------------------------------------------------------------------------------------
4.2 etc/webdefault.xml 这个就是web.xml的默认实现 ! 也就是说若过你应用中没有web.xml的话,也可以启动! 前提是使用 bin/jetty.sh start
4.3 其他杂类 jetty-jaas.xml jetty-jmx.xml jetty-plus.xml jetty-ssl.xml jetty-ajp.xml 这些配置文件我想看名字大家都应该知道了!
-----------------------------------------------------------------------------------------------------------------------
$JETTY_HOME/webapps 部署目录 ---- tomcat 下的webapps
$JETTY_HOME/lib 包存放路径 ---- tomcat 下的lib目录
$JETTY_HOME/bin 配置脚本 最重要的就是jetty.sh 这个脚本了, start|stop|run|restart|check|supervise
$JETTY_HOME/contexts webapp的上下文路径,这里可以将我们需要部署的WAR放到非 webapps目录下! 如果非要对应的话就是tomcat/service.xml中的<context/>这个配置项
$JETTY_HOME/logs 这个目录我想不说大家也应该知道
$JETTY_HOME/extras 因为 jetty是嵌入式的容器,所以能很容易的和其他框架或是容器结合(spring,jboss等!),具体就可看这个目录下的信息!
一般来说,具体到现实的应用中,我们不会去修改 jetty默认的一些配置项,都是通过替换代替的方式来完成配置文件的更换,具体就是4.1所提到的几个配置文件!
-----------------------------------------------------------------------------------------------------------------------
内置容器
上面说的都是怎么利用JETTY作为WEB容器,其实我们还可以跟简单的方式将应用本身作为WEB容器,只需要继承JETTY的CORE包即可! 下面就用代码来实例下吧!
1.mvn archetype:generate 创建一个项目 选择231这一个 struts项目
2.在pom.xml中添加包依赖
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1H.10</version>
</dependency>
3.mvn eclipse:eclipse -DdownloadSources=true 刷新包 若是你的网速不行的话那么就把后面的 -DdownloadSources去掉,不要下载源码!
4.那就敲代码吧
package com.inter12.xzm.jetty;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
public class MineJettyServer {
public static void main(String[] args) throws Exception {
MineJettyServer mineJettyServer = new MineJettyServer();
mineJettyServer.start();
}
private void start() throws Exception {
// 1.启动一个SERVER 并指定端口
Server server = new Server(8080);
// 2.设置应用的跟路径为 / 你也可以设置成自己需要的应用名字。例如我这个的应用是/jTest
// Context context = new Context(server, "/jTest", Context.SESSIONS);
Context context = new Context(server, "/", Context.SESSIONS);
// 3.添加servlet. OKServlet就是我们具体处理业务的类!
context.addServlet(new ServletHolder(new OKServlet()), "/ok.jsp");
// 4.启动。收工,这样就搞定了内置 servlet容器!
server.start();
}
class OKServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.write("success,welcome to ok.jsp!");
writer.flush();
writer.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("do post method enter!");
}
}
}
访问地址:http://127.0.0.1:8080/ok.jsp 这样就可以看到输出的结果了!
若是根路径设置为 /jTest的话,路径为:http://127.0.0.1:8080/jTest/ok.jsp
好了,这样就完成了!
tips:
1.恰好最近也在看 lucene的源码,跟 jetty一对比的话,jetty的代码写的有点不优雅了,也可以说比较的粗糙,特别是在注释上!
2.也下了最新版本8.0版本,好像是迁移到 org.eclipse 下了,包结构和一些语法变的挺大!
3.jetty本来在今年6月就想折腾下,谁知道拖到现在!
分享到:
相关推荐
易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面: 通过 XML 或者 API 来对 Jetty 进行配置;默认配置可以满足大部分的需求;将 Jetty 嵌入到应用程序当中只需要非常少的代码; 可扩展性 在使用了 ...
* etc jetty配置文件目录 * examples jetty示例 * extras jetty可选扩展 * lib 包含jetty所需的jar文件 * LICENSES 就是LICENSES * modules 子模块 * patches 补丁patches * pom.xml is jetty的maven2构建文件 * ...
易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面: 1. 通过 XML 或者 API 来对 Jetty 进行配置; 2. 默认配置可以满足大部分的需求; 3. 将 Jetty 嵌入到应用程序当中只需要非常少的代码; 可扩展性 ...
Spring-Boot-Jetty-WebSocket-示例 这是如何使用Spring Boot配置Jetty WebSocket的基本示例。 有关更多信息,请阅读我的博客文章-
简介: Jetty 是一个用 Java 实现、开源、基于标准的,并且具有丰富功能的 Http 服务器和 Web 容器,可以免费的用于商业行为。...易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面: 1.通过 XML 或者 API
SpringSecurity3.1.3 + JDK1.7 + Maven3.3.3 + Jetty9,提供基本的pom.xml,applicationContext.xml,web.xml配置和jetty插件的配置
此剧本安装: Oracle JDK 7(最新) 码头 8.1.5 索尔 4.9.0 然后它将 Jetty 配置为使用基本的 HTTP 身份验证。 Jetty 的密码是自动生成的并打印到标准输出。 要运行剧本,请使用: ansible-playbook solr/...
Spring MVC嵌入式码头示例 使用嵌入式Jetty 9服务器的基本Spring MVC 4应用程序。 无xml配置。 包括API REST服务,Freemarker和JSP示例。 与Mongo DB集成。 要求
不要假设您的服务器环境中已经安装了JRuby(基本的JRE可以正常工作)。 不会强制您的ruby webapp从jar或war加载文件。 简而言之,Jetpack在您的ruby项目周围创建了一个独立的JRuby / Jetty / vendored-gem世界,您...
为什么不只是在示例中使用 Jetty 配置? 或者部署到Tomcat什么的? Solr 使用 Jetty 进行了最彻底的测试。 具体来说,Jetty 与 Solr 捆绑在“example”目录中。 在 OpenSource Connections,我们经常需要帮助客户...
基本运行说明安装运行所需的 jars mvn clean install开始码头 mvn jetty:run开放服务 http://localhost:8181/基础网络服务开发实现网络服务添加带有基本类型声明的 xsd 添加基于 xsd 导入的 .wsdl 调整构建过程以从 ...
源码包含了项目的基本结构、配置文件、前端页面和后端接口等,方便开发者进行二次开发和定制。部署说明:环境准备:确保您的服务器已安装Java运行环境(JDK)、MySQL数据库以及Tomcat或Jetty等Web服务器。下载源码:从...
配置环境变量JAVA_HOME到jdk的安装目录,必须使用jdk1.8 配置Path环境变量,增加JAVA_HOME/bin 配置MAVEN_HOME环境变量,指到MAVEN的安装目录 所有的路径最好不要有中文,不然会有莫名的错误 如果使用框架自带的...
配置环境变量JAVA_HOME到jdk的安装目录,必须使用jdk1.8 配置Path环境变量,增加JAVA_HOME/bin 配置MAVEN_HOME环境变量,指到MAVEN的安装目录 所有的路径最好不要有中文,不然会有莫名的错误 如果使用框架自带的...
本文将介绍Servlet技术的基本原理以及使用方式。 首先,Servlet是一个Java类,它可以接收HTTP请求并且生成HTTP响应。当服务器接收到HTTP请求时,它会将请求转发给相应的Servlet进行处理。Servlet可以动态地生成HTML...
创建一个类似于Java模块的系统来构建运行时配置文件,应用程序可以从中选择:基本,服务,业务流程,批处理等。 实现许多适用于可伸缩性和在商用硬件上部署的模式。 例如,分片,无状态,数据局部性,快速故障,...
Spark 2.6.0引入了提供可配置的嵌入式Jetty服务器的选项。 本教程说明如何使用此功能来配置支持使用log4j记录传入请求的服务器。 初始设置 我们将从Spark的基本hello world实例开始 public class ApplicationMain { ...
安装需求:Maven3 、MySQL5 、Jetty9 /Tomcat9 (理论上只要实现了 JSR356 规范的 Servlet 容器都可以)下载源码解压后修改 src/main/resources/local.properties 中的数据库配置,并创建数据库可能需要修改 latke....
版本号< cas>4.2.1建议要求JDK 1.8以上配置etc目录包含需要复制到/cas/etc的配置文件。 当前文件是: cas.properties log4j2.xml建造mvnw clean package 或者mvnw.bat clean package部署方式嵌入式码头在/etc/cas/...
ktor-onelogin-saml 将与onelogin的库集成...基本安装 1)在路由配置中实例化SAML路由: routing { saml < Session> ( AppConfig .samlEnabled, // lambda to add custom authorization logic after successful au