关闭

Jetty服务部署调试使用

标签: Jetty
241人阅读 评论(0) 收藏 举报
分类:
ifeBa文章如未注明转载均为原创.
转载请注明: 转载自Life吧 本文永久链接地址:http://www.lifeba.org/arch/jetty_services_instal.html

Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

一、部署Jetty服务

1、内嵌Jetty方式

这里我们下载Jetty8版本,将下载的jar包(只需要这个all的jar包)加入到工程引用中。
http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/8.1.0.v20120127/jetty-all-8.1.0.v20120127.jar

在我们的App的Main方法中 加入下面代码

Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new BpServlet()), "/GetBPCategories");
server.start();
server.join();

BpServlet类

public class BpServlet extends HttpServlet{
private static final long serialVersionUID = 1L;

public BpServlet() {
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//接受参数
String key = request.getParameter("keywords");
//业务逻辑
//
//返回内容
response.setCharacterEncoding("utf-8");
response.setStatus(HttpServletResponse.SC_OK);
PrintWriter out = response.getWriter();
out.print("Welcome to Lifeba");
out.flush();
out.close();
}
}

上面的方法绑定了Jetty的端口为8080,并且设置了/GetBPCategories的路径对应的为BpServlet的Servlet类。
启动程序后,可以通过http://localhost:8080/GetBPCategories 来访问。

2、独立服务部署

下载 Jetty6的版本,http://dist.codehaus.org/jetty/ jetty-6.1.26版本并解压。我们只需要将我们的web app 放置到 jetty/webapps下即可。

windows

a、简单启动

java -jar start.jar etc/jetty.xml

start.jar 后面内容是传递给start.jar的参数,多个参数用空格隔开。
参数内容可以有以下几种:
--help    查看帮助信息
--stop    停止服务,下节中会讲到
--version  查看当前jetty版本信息
其他:作为Jetty服务配置文件

我们看到上条命令指定参数内容为etc/jetty.xml,它实际指向一个服务配置文件,该文件是用来设置jetty服务启动的系统配置信息。比如监听端口,发布某个目录下面的web应用,jndi的配置等等。当然服务配置文件可以是多个,比如:

java -jar start.jar etc/jetty.xml etc/jetty-plus.xml

 

访问 http://localhost:8080/ 看到 Welcome to Jetty 6。
要停止的话执行直接关掉CMD窗口或CTRL+C即可。

b、监听方式启动和关闭

启动

java -DSTOP.PORT=8009 -DSTOP.KEY=secret -jar start.jar

关闭

java -DSTOP.PORT=8009 -DSTOP.KEY=secret -jar start.jar --stop

jetty启动后会在本地监听你指定的端口8009,并将在验证下次关闭命令的密码secret

c、Win32Wrapper工具启动服务

1)控制台方式:bin/Jetty-Service.exe

2)Window服务的方式

注册Windows服务

bin/Jetty-Service.exe --install jetty-service.conf

wrapper  | Jetty6-Service installed.

安装成服务后,可以使用Window服务的方式运行jetty程序。

启动服务

Jetty-Service.exe --start jetty-service.conf

停止服务

Jetty-Service.exe --stop jetty-service.conf

注销服务

Jetty-Service.exe --remove jetty-service.conf

linux

启动 关不 重启 挂住 服务

bin/jetty.sh start stop restart supervise

检查配置

bin/jetty.sh check

二、调试Jetty的程序

Eclipse中启动Jetty

a、安装Eclipse Jetty插件

安装Jetty插件,通过Eclipse插件方式在线安装,参考jetty-and-eclipse-integration  文章。

插件地址:http://run-jetty-run.googlecode.com/svn/trunk/updatesite

b、Eclipse中的Run/Debug Configurations中定义一个Jetty Webapp。

启动的时候报了一个 java.lang.ExceptionInInitializerError异常。
com.sun.org.apache.commons.logging.LogConfigurationException java.lang.NullPointerException

在jsf-impl.jar包下,JSF就是原先sun推荐的web开发架构,用这个jar包时,经常会抛异常。这里将将JAVAEE5的库 换为 将JAVAEE6,再次启动就正常了。

c、如果你使用的是MyEclipse,可以使用下面的配置来部署到jetty中。

配置好后和部署到tomcat的方法一样。

参考

http://loianegroner.com/2011/07/jetty-and-eclipse-integration/

Jetty实战之 嵌入式Jetty运行Servlet

内嵌Jetty教程

http://jimichan.iteye.com/blog/601156

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:101918次
    • 积分:1053
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:69篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论