`
mxsfengg
  • 浏览: 208677 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第一次使用jetty

    博客分类:
  • java
阅读更多
/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (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.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package test;

import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.FilterHolder;

public class JettyTest {
	Server server;
	FilterHolder dispatchFilter;

	public JettyTest(String context, int port) {
		this.init(context, port);
	}

	public JettyTest(String context, int port, String solrConfigFilename) {
		this.init(context, port);
		dispatchFilter.setInitParameter("solrconfig-filename",
				solrConfigFilename);
	}

	private void init(String context, int port) {

		server = new Server(port);
		server.setStopAtShutdown(true);
		Context root = new Context(server, context, Context.SESSIONS);
		root.addServlet(Servlet404.class, "/e");
		root.addServlet(Respones.class, "/r");
	}

	public void start() throws Exception {
		if (!server.isRunning()) {
			server.start();
		}
	}

	public void stop() throws Exception {
		if (server.isRunning()) {
			server.stop();
			server.join();
		}
	}

	public int getLocalPort() {
		Connector[] conns = server.getConnectors();
		if (0 == conns.length) {
			throw new RuntimeException("Jetty Server has no Connectors");
		}
		return conns[0].getLocalPort();
	}

	public static class Servlet404 extends HttpServlet {
		@Override
		public void service(HttpServletRequest req, HttpServletResponse res)
				throws IOException {
			res.sendError(200, "Can not find: " + req.getRequestURI());
		}
	}

	public static class Respones extends HttpServlet {
		@Override
		public void service(HttpServletRequest req, HttpServletResponse res)
				throws IOException {
			res.getWriter().write("welcome");
		}
	}

	public static void main(String[] args) {
		try {
			JettyTest jetty = new JettyTest("/solr", 3456);
			jetty.start();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

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

    在Eclipse中配置Jetty的第一步是安装Jetty插件。你可以通过Eclipse的内置软件更新站点或Marketplace来搜索并安装Jetty插件,例如“Jetty RunWar”或“Jetty Integration”。安装完成后,重启Eclipse。 2. **创建或...

    jetty-distribution-9.4.6.v20170531

    标题中的"jetty-distribution-9.4.6.v20170531"指的是Jetty的特定版本,即9.4系列的第6次更新,发布于2017年5月31日。这个版本包含了完整的Jetty服务器环境,为开发者提供了发布Web项目所需的所有组件。 在Jetty ...

    signpost-commonshttp4-1.2.1.1,signpost-core-1.2.1.1,signpost-jetty6-1.2.1.1

    描述中的“三合一”可能指的是这三个库被整合在一起,方便用户一次性下载和使用。 Signpost是一个Java库,它简化了OAuth 1.0a和OAuth 2.0的实现,适用于各种HTTP客户端,包括Apache HttpClient和Jetty HTTP客户端。...

    java-chatroom:一个基于 Java 构建的简单聊天室,使用嵌入式 Jetty 作为其服务器(甚至使用 Hadoop 和 Pig)

    聊天室 一个基于 Java 构建的简单聊天室,使用嵌入式 Jetty 作为其服务器(甚至使用 Hadoop 和 Pig) ... 我只是想第一次尝试 hadoop/pig。 Hadoop 版本:2.6.0 猪版本:0.14.0 请相应地包括图书馆。

    jetty.project:EclipseJetty:registered:-Web容器和客户端-支持HTTP2,HTTP1.1,HTTP1.0,websocket,servlet等

    随着Maven下载所有依赖项,第一次构建可能会比预期花费更长的时间。 构建测试进行了大量的压力测试,在某些机器上,必须将文件描述符限制设置为大于2048,才能使测试成功通过。 通过使用mvn cle

    MYPROJECT:第一次提交

    3. **版本控制**:项目名称中包含"第一次提交",这提示了项目使用了版本控制系统,可能是Git。Git使得团队协作变得简单,它记录了每一次代码更改,便于回溯、合并和分支管理。 4. **IDE集成**:Java开发者常用...

    hajiboot-gradle:第一次在 gradle 上使用 Spring Boot

    标题 "hajiboot-gradle:第一次在 gradle 上使用 Spring Boot" 指向的是一个关于在Gradle构建系统上集成并使用Spring Boot的教程或项目。这个项目可能是为了帮助开发者理解如何将Spring Boot的便利性与Gradle的强大...

    learning-spring-boot:我第一次使用Spring Boot

    通常使用的嵌入式服务器有Tomcat和Jetty。 健康检查功能允许你监控应用的状态,这对于微服务环境下的运维至关重要。通过 `/actuator/health` 端点,你可以获取应用的运行状况信息。 Spring Boot还提供了丰富的应用...

    hajiboot:尝试“第一次 Spring Boot”

    【标题】:“hajiboot:尝试‘第一次 Spring Boot’” 在本文中,我们将深入探讨“第一次 Spring Boot”的体验,以“hajiboot”项目为例。Spring Boot 是由 Pivotal 团队开发的一个框架,它旨在简化创建独立的、...

    gfxbuilder-svg-0.5.zip

    "gfxbuilder-svg-0.5"可能是这个项目的版本号,表示这是该工具的第五次重大更新。 描述中的 "shrinkwrap-container-jetty-70.zip" 提到了"shrinkwrap"和"jetty"两个关键概念。ShrinkWrap是一个Java库,用于创建和...

    Electronic-Document-Management-System:使用 Spring 和 Hibernate 进行 EDMS 软件开发

    http://localhost:8080在 Heroku 上部署: 第一次运行: mvn package 接下来转到目标目录并运行: heroku deploy:war --war jba.war --app YOUR_APP 要将 WAR 部署到 Heroku,请参阅这篇文章: : 您可以使用此用户...

    Linux计划任务crontab使用说明linux操作系统电脑资料.doc

    * 每月每天每小时的第 0 分钟执行一次 /bin/ls:0 * * * * /bin/ls * 在 12 月内,每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup:*/20 6-12 * 12 * /usr/bin/backup * 周一到周五每天下午 5:00...

    Java 实时社区论坛.zip

    init.properties 中的管理员账号使用 mvn install 进行构建部署到 Servlet 容器的 ROOT 下并启动容器,数据库表会在第一次启动时自动建立注意:没有数据库建表 SQL 脚本,只需要手动建库,表会在第一次启动时自动...

    初学SpringSession讲义大全.docx

    1. 使用 Cookie:第一次创建 Session 时,服务端会在 HTTP 协议中向客户端 Cookie 中记录一个 Session ID,以后每次请求把这个会话 ID 发送到服务器,这样服务端就知道客户端是谁了。 2. 使用 URL 重写:如果客户端...

    dubbo 后台监控使用简介

    - 第一次启动Tomcat后,在解压后的文件夹中可以找到配置文件`dubbo.properties`,路径为: ``` ../tomcat-8.0.50/webapps/dubbo-admin-2.6.0/WEB-INF/dubbo.properties ``` - 在该文件中设置登录密码。 4. **...

    JavaBlogFeedBurner:带有 Maven、Spring、Hibernate 的 Java 项目

    您可以在此处访问您的应用程序: http://localhost:8080在 Heroku 上部署: 第一次运行: mvn package 接下来转到目标目录并运行: heroku deploy:war --war jba.war --app YOUR_APP 要将 WAR 部署到 Heroku,请参阅...

    BOS技术整理-05

    3.更易于实现缓存机制(第一次访问资源缓存,第二次访问资源,返回304客户端调用本地) JAX-RS整合spring服务器端开发 建立 maven web项目,演示RS整合spring服务发布 pom文件中导入坐标 web.xml配置...

    agorava-socializer:使用Agorava构建的示例应用程序

    您所要做的就是输入命令mvn -Prun 然后等待那个maven下载所有需要的东西(可能是第一次),当Jetty启动时,只需将浏览器指向http://localhost:8080享受。建造您可以使用以下命令构建Agorava mvn clean install 它将...

    第五次作业1

    在进行第五次作业时,我们需要构建一个电子点餐系统,这个系统需要具备前端展示、后端处理和数据库管理等功能。下面将详细阐述各个环节的关键知识点。 1. **硬件环境**: 计算机配置是任何软件开发的基础。通常,...

    HttpClient由浅到深-打打磨rpc利器.pptx

    第一次握手确认服务端接收能力,第二次握手确认双方发送和接收能力,第三次握手确认服务端的发送能力。这能避免脏连接,防止因请求超时导致的问题。 2. **四次挥手**:四次挥手用于关闭连接。TCP 连接关闭过程中,...

Global site tag (gtag.js) - Google Analytics