i-jetty 下的JavaWeb开发(一)

  最近需要将android端作为服务器进行开发,让android作为服务器,现阶段技术并不是很成熟,主要的服务器有i-jetty,是基于PC端的jetty的移植。i-jetty同tomcat类似,也是Servlet的容器,但是i-jetty需要使用android的方法进行调用,否则android设备无法分辨。

  通过一番搜索查阅,发现网上对这一块的描述都很浅显,有具体方法,但尝试过后又有一些问题,所以写下这篇博文,以供后来者学习借鉴之用。

  首先,先说说环境的搭建。要在i-jetty下开发,最好的是使用maven的项目管理方法。Ant的方法是行不通的。所以,你需要去eclipse官网下载eclipse for JEE。然后去maven官网下载maven。maven的配置就不多说了,网上很多教程。有了这两样,你还需要一个连接eclipse和maven的桥梁:m2eclipse。具体的安装配置网上都有。

  OK,这些配置好了之后,就可以去github上下载i-jetty的源码,https://github.com/EvidenceKiller/i-jetty-1,这是我fork的源码。里面包含i-jetty的源码,还包含两个范例,一个是console,一个是hello。具体我是参考的hello的例子。

  在eclipse中导入下载的源码和范例。会有错误,不要在意这些细节。具体查看hello和example-webapps-parent这两个工程。example-webapps-parents是一个maven project,hello是一个maven module。打开example-webapps-parent目录下的pom.xml,内容如下:

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.mortbay.ijetty</groupId>
  <artifactId>example-webapps-parent</artifactId>
  <packaging>pom</packaging>
  <version>3.2-SNAPSHOT</version>
  <name>I-Jetty :: Example Webapps Parent</name>
  <description>Parent project for example webapps</description>
  <modules>
    <module>hello</module>
  </modules>
  <properties>
     <android.version>1.6_r2</android.version>
     <jetty.version>7.5.4.v20111024</jetty.version>
     <servlet.version>2.5-20081211</servlet.version>
  </properties>
</project>

  里面定义了project的version,groupId等等。看看就好。

  在hello文件夹下的pom.xml中可以看到如下:

  <parent>
    <groupId>org.mortbay.ijetty</groupId>
    <artifactId>example-webapps-parent</artifactId>
    <version>3.2-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  说明他继承自example-webapps-parent。主要需要把<plugins>下的<arguments>中的dx.jar文件需要修改下。定义环境变量android_home,修改dx.jar文件目录。

  做完这些,就可以运行了,右键hello项目,run as -> maven clean,成功之后,maven install,一般来说会成功,不成功的话看看报错原因,改正就好了。

  部署:

  不能直接拷贝war文件到android平台的jetty目录下的webapps,至少我是没成功。i-jetty根本不理我啊!!!试了好多遍了啊!!!i-jetty你要不要这么任性啊!!!好了不吐槽了。拷贝target目录下的hello-3.2-SNAPSHOT文件夹到jetty目录下的webapps,访问 http://your android ip:8080/hello-3.2-SNAPSHOT/sayit,看看是不是显示hello from servlet land!?

  好了,到这里这个example就成功的编译,部署了。有问题欢迎评论。

  下一篇讲下如何自己创建项目,编译部署自己的项目。

  

posted @ 2015-04-02 15:36  Tandava的猫  阅读(2082)  评论(0编辑  收藏  举报