设为首页 收藏本站
查看: 617|回复: 0

[经验分享] jetty的基本安装配置

[复制链接]

尚未签到

发表于 2017-2-26 07:12:10 | 显示全部楼层 |阅读模式
  外置容器
  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月就想折腾下,谁知道拖到现在!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347177-1-1.html 上篇帖子: Jetty学习二.Eclipse中安装Jetty插件 下篇帖子: jetty跟java的兼容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表