`
mxsfengg
  • 浏览: 206043 次
  • 性别: 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();
		}
	}
}

 

分享到:
评论

相关推荐

    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

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

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

    Java 实时社区论坛.zip

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

    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 它将...

    Flooding:第一次提交

    安装工具:java se 8; apatch maven 2.5 MySQL 5.5 设置系统变量java_home,maven_home!... 使用以下命令从转储文件还原数据库:mysql --u ...[转储文件] 输入项目目录并输入命令:mvn jetty:run 放入浏览器网址:

    zkmongomaps:Zk Mongo Gmaps MVVM 演示

    ZK MVVM Spring Data Mongodb & Google Maps Demo 建造 使用以下命令构建并运行代码: mvn -Dmaven.test.skip=true package jetty:run ...在第一次启动时,应用程序将尝试从来自的文件 zips.json

    spring-mvc-showcase:网路应用程式

    Spring MVC展示柜 ...如果这是您第一次使用Github,请查看以了解基础知识。 要运行该应用程序: 从命令行使用Maven: $ cd spring-mvc-showcase $ mvn jetty:run 在以下位置访问已部署的Web应用程序:

    使用Jenkins进行持续集成

    上次介绍了开源项目如何利用TravisCI进行持续集成,但是如果你的项目不是开源项目,用TravisPro就需要交钱了。如果不想交钱,可以自己搭建CI环境,利用JenkinsCI进行持续集成。...第一次启动Jenkins时,出于

    RMT_Backend:为我的树评分的后端

    当第一次请求 REST-API 时,你会得到一个 COOKIE。 此 cookie 用于识别用户。 通过发送此 cookie,应用程序知道您的状态。 (登录/注销)如果您想对自己进行身份验证,请将带有您的凭据的 HTTP 请求作为 ...

    spring-mvc-showcase:演示Spring MVC Web框架的功能

    Spring MVC展示柜 ...如果这是您第一次使用Github,请查看以了解基础知识。 要运行该应用程序: 在Maven的命令行中: $ cd spring-mvc-showcase $ mvn jetty:run 在以下位置访问已部署的Web应用程序:

    talk-clojure-project-setup

    使用dev/user.clj解决服务器启动REPL加入开发人员资料简化服务器生命周期管理添加shadow-cljs并与clj&cljs一起插入添加试剂并从前端获取我们的API 添加积分关于repl_sessions的简短说明,易于部署待办事项第一次...

    film-handler

    我第一次尝试构建Clojure Web应用程序 发展 设置 首次克隆此存储库时,请运行: lein duct setup 这将创建用于本地配置的文件,并为项目准备系统。 环境 要开始开发,请从REPL开始。 lein repl 然后加载开发环境...

    java中级笔试题-conjure:用于浏览器和微服务的强类型HTTP/JSONAPI

    或查看我们的指南以定义您的第一个 Conjure API。 特征 使团队能够跨多种语言一起工作 消除了一整类序列化错误 抽象出人体工程学界面背后的低级细节 用于建模域的表达性语言(枚举、联合类型、映射、列表、集合) 有...

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

    在eclipse中,右键点击项目名,选择Run as - Maven build...,Goals填入clean package,然后点击Run,第一次运行需要下载jar包,请耐心等待 12、部署项目。将项目部署到Tomcat7或以上版本,启动Tomcat。也可使用...

    单点登录源码

    通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 > zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理...

    zheng企业级开发框架-其他

    通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、...

Global site tag (gtag.js) - Google Analytics