`
wsc830719
  • 浏览: 166028 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

开发以及测试echo应用最好使用内置jetty的形式

    博客分类:
  • RIA
阅读更多

如果使用tomcat,当改动类后,你会发现,根本不会把变化体现出来。

只能重启tomcat,可以使用内置jetty.

 

把jetty的jar放入,测试echo只需要2个jar,最主要的那两个,也是jetty的核心部分,必须加入的。

 

然后可以使用如下主类 进行:

这样就可以在jetty中测试界面了。如果愿意,后台的spring hibernate的部分使用tomcat测试。

 

两者可以同时进行。

 

下面是一个简单的启动jetty的类:  如果需要更高级的可以照着改:该类源自echo官网的测

/* 
 * This file is part of the Echo Web Application Framework (hereinafter "Echo").
 * Copyright (C) 2002-2009 NextApp, Inc.
 *
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 */

import com.wsc.myoa.TestServlet;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;
import java.net.URL;
import java.net.URLConnection;

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 TestAppRun {

    private static final Class SERVLET_CLASS = TestServlet.class;
    private static final String CONTEXT_PATH = "/myoa";
    private static final String PATH_SPEC = "/app";
    private static final int PORT = 8001;

    public static void main(String[] arguments) {
        new Runnable() {

            public void run() {
                try {
                    startServer();
                } catch (Exception ex) {
                    System.out.println("ex:" + ex);
                }
            }
        }.run();

    }

    static void startServer() throws Exception {
        try {
            URL url = new URL("http://localhost:" + PORT + "/__SHUTDOWN__/");
            URLConnection conn = url.openConnection();
            InputStream in = conn.getInputStream();
            in.close();
        } catch (ConnectException ex) {
            // Do nothing.
        }

        Server server = new Server(PORT);

        final Context testContext = new Context(server, CONTEXT_PATH, Context.SESSIONS);
        testContext.addServlet(new ServletHolder(SERVLET_CLASS), PATH_SPEC);

        Context shutdownContext = new Context(server, "/__SHUTDOWN__");
        shutdownContext.addServlet(new ServletHolder(new HttpServlet() {

            private static final long serialVersionUID = 1L;

            @Override
            protected void service(HttpServletRequest req, HttpServletResponse resp)
                    throws ServletException, IOException {
                try {
                    // Manually stopping session handler to test Application.dispose().
                    testContext.getSessionHandler().stop();
                    System.out.println("Shutdown request received: terminating.");
                    System.exit(0);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }), "/");

        System.out.println("Deploying " + SERVLET_CLASS.getName() + " on http://localhost:" + PORT + CONTEXT_PATH + PATH_SPEC);

        server.start();
        server.join();
    }
}

 试代码

 

分享到:
评论

相关推荐

    Spring整合Jetty开发web应用的例程

    1. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供了依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)以及大量的企业服务,如数据访问、事务管理等。...

    spring boot内置jetty

    总的来说,Spring Boot 内置的 Jetty 服务器提供了快速构建 web 应用的平台,结合 Spring 框架的强大功能,使得开发过程更为高效,同时也方便实现各种常见的业务需求。通过合理配置和扩展,开发者可以构建出稳定、高...

    轻量级的内置jetty版服务器

    标题中的“轻量级的内置jetty版服务器”指的是一个采用了Jetty作为内置服务器的解决方案,专门用于构建轻量、高效的Web应用程序。Jetty是一个开源的HTTP服务器和Servlet容器,以其小巧、快速和灵活的特性在Java开发...

    利用Jetty服务器开发web应用例程

    总结一下,Jetty作为一个强大的Servlet容器,提供了轻量级、快速和灵活的Web应用开发环境。通过学习如何配置和运行Jetty服务器,以及如何注册和管理Servlet,你可以为你的Java Web应用打下坚实的基础。不断探索Jetty...

    经典jetty应用于web项目的开发

    在使用Jetty进行Web项目开发时,一个显著的优势是它允许开发者在不重启服务器的情况下热部署应用。这是因为Jetty支持观察文件系统变化并自动重新加载修改过的类或资源,极大地提升了开发效率。对于快速迭代的项目,...

    应用服务器jetty8.0

    这对于测试、开发以及部署小型应用非常有利。 3. **模块化设计**:Jetty的模块化设计允许用户根据需求选择安装必要的组件,如HTTP服务器、Servlet容器、JSP支持等,避免了不必要的资源浪费。 4. **性能优化**:...

    jetty 嵌入式开发源码

    通过深入学习Jetty的嵌入式开发源码,开发者能够更好地理解其工作原理,从而更高效地利用Jetty构建高性能、可扩展的Web应用。同时,源码学习也有助于提升解决问题的能力,对于从事Java Web开发的工程师来说是一份...

    gradle的jetty插件使用例子

    Gradle,作为现代的构建工具,提供了丰富的插件生态系统,其中包括Jetty插件,使得在开发阶段快速启动和测试Web应用程序变得非常便捷。本篇文章将深入探讨如何在Gradle项目中使用Jetty插件。 首先,我们来看一下`...

    jetty测试桩

    标题中的"jetty测试桩"指的是使用Jetty服务器作为测试环境中的模拟服务,它能够帮助开发者在实际接口未开发或不可用时进行测试。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,常用于快速搭建测试环境...

    maven+jetty +ssh 项目例子

    【标题】"maven+jetty +ssh 项目例子"是一个综合性的开发示例,它展示了如何使用Maven构建工具、Jetty服务器以及SSH(Spring Security)框架来开发和部署一个Java Web应用。这个项目旨在帮助开发者理解这些技术的...

    Jetty插件安装及使用步骤

    Jetty是一款开源、轻量级的Java应用服务器,广泛应用于开发测试环境。与Tomcat相比,Jetty具有更好的性能表现和更小的内存占用,特别是在开发过程中能够实现热部署功能,即代码修改后无需重启服务器即可生效,大大...

    java web开发部署神器--jetty插件

    在Maven中,我们可以使用Jetty Maven插件进行开发阶段的快速测试和部署,无需每次都打包成WAR文件再放到服务器上。这大大提升了开发效率。 以`jetty-distribution-9.3.6.v20151106`为例,这是Jetty的一个发行版本,...

    jetty的安装与使用

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发、测试和部署Web应用程序。本文将详细介绍Jetty的安装过程以及如何使用它。 **1. 安装Jetty** 首先,你需要从Jetty的官方网站下载最新...

    用Maven和Jetty开发调试WEB应用程序

    ### 使用Maven和Jetty开发调试WEB应用程序 #### 前言 在现代软件开发过程中,集成工具如Maven和Jetty极大地提高了开发效率。Maven作为自动化构建工具,能够帮助开发者快速创建、管理和构建项目;而Jetty则是一款轻...

    jetty.rar(clipse/myeclipse/STS等开发工具的jetty插件-通用版本)

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。在Eclipse、MyEclipse或Spring Tool Suite (STS) 等开发环境中,Jetty插件是一个非常实用的工具,它允许开发者快速...

    eclipse中配置使用jetty调试web项目

    Jetty可以直接嵌入到Java应用中,无需外部服务器进程,这使得它非常适合于快速开发和测试。而在Eclipse中配置Jetty,可以实现热部署和实时调试,极大提高了开发效率。 1. **安装Jetty插件** 在Eclipse中配置Jetty...

    jetty-9.0开发包

    这个"jetty-9.0"开发包包含了所有必要的库文件、配置示例和文档,是开始学习和使用Jetty的理想起点。无论你是要构建一个新的Web应用,还是优化现有的服务器架构,Jetty 9.0都能提供稳定、高效的解决方案。

    jetty-6.1.26.zip

    10. **Maven插件**:对于使用Maven构建项目的开发者来说,Jetty还提供了Maven插件,可以方便地在开发过程中运行和测试Web应用。 总的来说,Jetty 6.1.26虽然相对较老,但它体现了Jetty服务器的核心设计理念和优势,...

    jetty 9.4.9

    3. **jetty 容器.txt**:这个文本文件可能包含了关于如何配置和使用Jetty容器的指南或信息,包括启动参数、配置文件设置以及如何部署Web应用程序等内容。对于新手来说,这是一个很好的参考资料。 4. **jetty-...

Global site tag (gtag.js) - Google Analytics