`

jetty 中如何设置root app

 
阅读更多

 

 

jetty作为一个web容器,部署时只需要将部署包扔到 $JETTY_HOME/webapp目录下即可!

例如工程 test.war ,在启动jetty后的访问路径就是 http://localhost:8080/test ,若是我们期望访问 http://localhost:8080/ 即是访问test工程的呢?有两种办法可以解决。

 

1.直接将 test.war 改名为root.war 。

这个是最简单的做法,也是一般web容器都通用的做法,放到tomcat也是这种做法。

 

 

2.修改contexts目录下文件。

这个做法稍微有点麻烦,是通过设置 contexts来达到目的,不期望改变原来的配置文件,所以我们copy配置文件出来。

 

step1 准备工作

 

mkdir -p /home/inter12/jetty/webapp/virtual
mkdir -p /home/inter12/jetty/config
mkdir -p /home/inter12/jetty/config/contexts

cp $JETTY_HOME/etc/jetty.xml  /home/inter12/jetty/config/ 
 

 

step2 修改配置 

vim  /home/inter12/jetty/config/jetty.xml

修改其中的

 

 

....

<Call name="addLifeCycle">
      <Arg>
        <New class="org.mortbay.jetty.deployer.ContextDeployer">
          <Set name="contexts"><Ref id="Contexts"/></Set>
          
            <!----------------- 将contexts路径设置为我们新的 -------------------->
            <Set name="configurationDir">/home/inter12/jetty/config/contexts</Set> 
            
          <Set name="scanInterval">5</Set>
        </New>
      </Arg>
</Call>
.......
<Call name="addLifeCycle">
       <Arg>
         <New class="org.mortbay.jetty.deployer.WebAppDeployer">
           <Set name="contexts"><Ref id="Contexts"/></Set>
           
           <!--------------- 设置webapp 目录  指定到一个虚拟的webapp 。--------------->
           <Set name="webAppDir">/home/inter12/jetty/webapp/virtual</Set>   
           
           <Set name="parentLoaderPriority">false</Set>
           <Set name="extract">true</Set>
           <Set name="allowDuplicates">false</Set>
           <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
         </New>
       </Arg>
</Call>
...... 
 

 

cd /home/inter12/jetty/config/contexts 

新建一个 test.xml(这个名字可以是任意的)

 

 

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">


  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/</Set>
  
  <!-- 这里必须加上war这个结尾 - - - - - - - - - - - - - - - - - - - - -->
  <Set name="war">/home/inter12/jetty/webapp/test.war</Set>   

  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Optional context configuration                                  -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="extractWAR">true</Set>
  <Set name="copyWebDir">false</Set>

</Configure>
 

 

好了,到这里就已经基本结束了。

启动jetty 

 

cd $JETTY_HOME

 

java -jar start.jar /home/inter12/jetty/config/jetty.xml 

 

那么访问 http://localhost:8080/test  等同于  http://localhost:8080

 

TIPS:

  若是通过contexts来配置 / 访问的话,那么war就不要放在webapp目录下,jetty会加载两边,若是配置了log4j的话,就会出现一下错误,切记!!!

 

 Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 


0
0
分享到:
评论
1 楼 gaoyuanyuan121 2014-02-11  
直接改成root.war,根路径能访问,项目路径也能访问,赞一个!!

相关推荐

    Jetty中文手册

    jetty-web.xml–Web App configuration jetty-env.xml–JNDI configuration webdefault.xml–Pre-web.xml configuration override-web.xml–Post-web.xml configuration 特性参考 SSL Connectors参考 QoSFilter参考 ...

    jetty6 嵌入式使用

    Jetty 6是一款轻量级、高性能的Java Web服务器和Servlet容器,因其可嵌入式使用而备受...在实际开发中,你可以根据需要进一步配置Jetty,例如设置服务器的线程池大小、添加自定义的处理器等,以满足不同场景的需求。

    Jetty源码分析.pdf

    - **小巧嵌入**:Jetty的JAR文件大小仅约600KB,易于动态嵌入到各类应用程序中,特别适用于开发Web 2.0等新型互联网应用。 - **应用广泛**:在开源与商业项目中广泛应用,如**Geronimo**、**JBoss**、**IBM Tivoli**...

    Jetty使用总结

    例如,可以在此文件中设置默认的会话超时时间、错误页面等。 ```xml &lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" &gt; &lt;web-...

    Tapestry5实例(开发步骤)

    - 在 Eclipse 中配置 Jetty 的启动配置,指定 Jetty home 和 web app root。 - 选择 "Run Configurations",新建 Jetty 配置。 - 设置 "Main Class" 为 "org.eclipse.jetty.server.Server"。 - 配置 "Server ...

    pa165-airport:PA165项目

    jetty 服务器: cd $APP_ROOT/airport-ui mvn jetty:run 运行 CLI 应用程序从airport-cli模块运行 CLI 应用程序cd $APP_ROOT/airport-cli 列出平面实体: java -jar target/airport-cli-1.0-SNAPSHOT-jar-with-...

    springboot项目

    在`application.yml`中,我们可以定义应用的环境变量、服务器端口、数据源配置、日志设置等。例如: ```yaml server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root ...

    [Deployer:149026]Deploy application WebContent on myserver.

    当部署Web应用程序时,尤其是基于Java的Web应用,servlet容器(如Tomcat、Jetty)会使用这个API来运行和管理Servlet。 在部署WebContent(可能是一个Web应用目录结构的名称)时,开发者通常会遵循以下步骤: 1. **...

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    `mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M2 -DgroupId=cn.xue.app -DartifactId=xueAppFuse` ...

    nutz初使用之MVC HelloWorld (netbeans jsp版)

    - 确保NetBeans配置为使用内置的Jetty服务器(如果尚未设置)。然后,右键点击项目,选择“运行”以启动应用服务器。 - 打开浏览器,输入`http://localhost:8080/hello`,你应该能看到“Hello, Nutz MVC!”的问候...

    EveryConvo:具有开放 API 的消息平台应用程序

    注意:需要 MySQL 服务器,运行在 localhost(默认用户名:密码,“root”:“”,可以在 SQLUtils-&gt;Values 类中更改) mvn install mvn jetty:run 运行在localhost:8080/EveryConvoAPI API 服务器在localhost:...

    appfuse新手上路

    - 配置好MySQL服务,包括设置root用户密码等。 #### 二、AppFuse 2.0 项目初始化与配置 接下来,是AppFuse 2.0项目初始化的关键步骤。 **1. 解压AppFuse依赖** - 下载`appfuse-dependencies-2.0.2`。 - 将其解...

    logback相关jar包和demo代码.zip

    `logback.xml` 是 Logback 的配置文件,通过它可以设置日志级别、日志输出目的地、过滤器等。以下是一些配置示例: ```xml &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ...

    LogBack.zip

    在生产环境中,通常会将日志级别设置为 INFO 或 WARN,以便于监控应用状态,而在开发调试时,可能需要更低级别的日志,如 DEBUG 或 TRACE。 - **Appender**:Appender 是日志输出的目标,可以是控制台、文件、数据库...

    SpringBoot应用程序

    2. **嵌入式Web服务器**:SpringBoot可以内嵌Tomcat或Jetty等Web服务器,无需额外安装,方便部署。 3. **起步依赖**:SpringBoot通过“起步依赖”(Starter POMs)来简化Maven配置,每个依赖都包含了运行项目所需的...

    connect-1.3.0-all-in-one

    # 拷贝demo/src/main/webapp中的所有文件至Q项目WebRoot(或叫WebContent)下 # 拷贝lib目录下所有的jar包至Q项目WebRoot(或叫WebContent)/WEB-INF/lib下(servlet-api-2.5.jar如果容器已经包含就不必添加) ===在...

    logback.的jar包

    &lt;file&gt;logs/app.log &lt;pattern&gt;%date %level [%thread] %logger{10} [%file:%line] %msg%n &lt;root level="info"&gt; &lt;/root&gt; ``` **日志性能** Logback 被设计为高效且低开销的。它利用了Java的反射和...

    Maven下SpringMVC+MyBatis最精简的例子

    完成上述步骤后,可以通过Maven的`mvn tomcat7:run`或`mvn jetty:run`命令启动项目,然后访问预设的URL进行测试。 总结,SpringMVC与MyBatis的整合让开发更加便捷,通过注解和配置文件,我们可以快速实现业务逻辑与...

    SmartWx微信公众号管理系统-其他

    app.properties 项目中暂时未用到,可废弃 9、项目中为简化代码,用到了 lombok 插件,大家可自行安装。 10、由于项目采用前后台分离,也为了将来配置读写分离,项目需 root 根目录运行,如若不然可能会js,css加载...

Global site tag (gtag.js) - Google Analytics