hive启动web程序流程

1.通过hwi service启动hwi.sh,在hwi.sh中到lib目录下找到hwi.jar和hwi.war,并执行主类org.apache.hadoop.hive.hwi.HWIServer
2.在HWIServer中进入start方法,设置好host和port变量,默认为0.0.0.0:9999,通过

webServer = ShimLoader.getJettyShims().startServer(listen, port);
  webServer.addWar(hwiWARFile.toString(), "/hwi"); //hwiWARFile 为war包的文件名
webServer.start();
  webServer.join();

来启动jetty服务器。
3.ShimLoader为shims包中的common文件夹下的工具类,他通过反射来实例化工具类对象,这里实例化一个JettyShims对象。
JettyShims封装了对Jetty服务器的一些操作,可以根据不同的Hadoop的版本(一个HashMap)生成相应的操作实例。

public interface JettyShims {
  Server startServer(String listen, int port) throws IOException;
  /**
  * Server.
  *
  */
  interface Server {
  void addWar(String war, String mount);
  void start() throws Exception;
  void join() throws InterruptedException;
  void stop() throws Exception;
  }
  }

这里我们一个Jetty20SShims实例为准,在startServer中我们先实例化一个Server对象,
private static class Server extends org.mortbay.jetty.Server implements JettyShims.Server
然后

public void setupListenerHostPort(String listen, int port)
  throws IOException {
SocketConnector connector = new SocketConnector();
  connector.setPort(port);
  connector.setHost(listen);
  this.addConnector(connector);
  }

至此,jetty服务器已经在指定的地址和端口启动了,OK.

使用JettyServer工具类进行测试。

public static void main(String[] args) throws Exception {

JettyServer js = new JettyServer();

js.setupListenerHostPort("localhost", 9999);

js.addWar("D:\\软件安装源程序\\Java\\eclipse_jee\\mywar.war", "/mywar");

js.start();

}

添加jetty-6.1.26.jar,jetty-util-6.1.26.jar,servlet-api-2.5-6.0.1.jar三个包,

此时可以即可访问启动的web程序了。

jetty7及以后版本由eclipse进行托管,使用方法有所改变。

<a href="http://download.eclipse.org/jetty/">http://download.eclipse.org/jetty/</a>

jetty6 下载地址,目前不知道以后还会不会提供下载。

<a href="http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip">http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip</a>

Jetty Version Comparison Table

VersionServletJavaNamespaceLicensesSiteStatus
Jetty 9Servlet 3.0+Java 1.7org.eclipse.jetty.* EPLv1 / ASLv2 Eclipse.orgAlpha Milestones
Jetty 8Servlet 3.0Java 1.6org.eclipse.jetty.* EPLv1 / ASLv2 Eclipse.orgStable
Jetty 7Servlet 2.5Java 1.5org.eclipse.jetty.* EPLv1 / ASLv2 Eclipse.orgStable
Jetty 6Servlet 2.5Java 1.4org.mortbay.*ASLv2Codehaus.orgEnd of Life / Nov 2010


其他问题:

启动jetty后,访问jsp页面,出现一下错误:

HTTP ERROR: 500

JSP support not configured

RequestURI=/capaa/WEB-INF/jsp/error/500.jsp

<a href="http://jetty.mortbay.org/">Powered by Jetty://</a>

原因:是应为没有加载jetty用来解释jsp的jar包。加载进来就可以了。

解决办法:project--点右键---property---java build path----Add Extenters Jars

选择jetty6.1--lib--jsp2.1---*.jar添加即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值