Android上web服务器i-jetty搭建(源码编译)
一. Jetty简介
Jetty是一个用Java实现的开源的Http和Web服务器,包括HTTPserver, HTTP client和javax.servlet container。
Jetty的应用非常广泛,包括:- 大型集群系统,如Yahoo Hadoop Cluster(http://developer.yahoo.net/hadoop/)
- 云计算服务,如Google AppEngine(http://code.google.com/appengine/)
- SaaS(Software-as-a-service)系统,如Yahoo! Zimbra(http://www.zimbra.com/)
- 应用程序服务器,如Apache Geronimo(http://geronimo.apache.org/)
- 应用框架,如GWT(http://code.google.com/webtoolkit/)
- 工具,如 Eclipse IDE(http://www.eclipse.org/)
- 移动设备,i-jetty(http://code.google.com/p/i-jetty/)
二. i-Jetty源码编译
1. maven安装和配置(编译i-jetty过程中会用到maven)
(1)maven下载:http://maven.apache.org/download.html
(2)解压maven,如D:\;
(3)设置maven环境变量(配置maven环境之前要确定配置好了jdk的环境)
maven_home=D:\apache-maven-2.2.1
PATH=%maven_home%\bin
(4)测试maven是否成功:mvn -v
关于maven配置可以参考:http://www.cnblogs.com/smile2010/archive/2011/11/22/2259535.html
http://www.cnblogs.com/lilihuang/archive/2012/07/28/2613204.html2. 从官网上下载i-jetty源码:http://code.google.com/p/i-jetty/downloads/list;
或者svn下载:http://i-jetty.googlecode.com/svn/trunk/i-jetty。
3. 下载源码解压后,里面有两个文件夹i-jetty-server与i-jetty-ui还有一个pom.xml文件;命令行模式下,进入pom.xml所在目录,执行命令: mvn clean install,这样就下载了一堆jar,然后会自动编译,当然通常会是 BUILD FAILURE的现象。下载的jar包一般会保存在C:\Users\你的名字\.m2 目录下。
4. 在eclipse中创建i-jetty的android项目,将下载的i-jetty源码覆盖进去;
5. 将下面目录下的 jar引入到i-jetty项目的libs中:C:\Users\账户名\.m2\repository\org\eclipse\jetty,还需要servlet-api-2.5.jar。如果下载文件夹中没有的话可以百度一下。
主要包含
因为这些jar包里面会有about.html这个文件,所以导致编译出错,这时就要逐个删除了。
6. 编译并运行。
三. web项目发布到设备上去
因为android上的java虚拟机不能直接解释执行.class文件,所以首先需要把web项目中的.class文件和.jar文件转换成虚拟机能识别的.dex文件
这里假设web项目的目录在:E:\demo
1. 需要将WEB-INF/classes目录和lib目录下的文件,用dx命令处理成classes.dex并放到lib目录下。
dx.bat --dex --output=E:\demo\WEB-INF\lib\classes.zip E:\demo\WEB-INF\classes E:\demo\WEB-INF\lib
2. 打成war包
cd E:\demo
jar -cvf demo.war *.*
3. 生成classes.zip后,可以将原先的.class和.jar删除掉。
4. 通过i-jetty的download功能,把war下载到设备上去,
也可以直接把demo.war放到/sdcard/jetty/webapps/目录下。
5. 启动i-jetty服务器。
四. 参考资料
1. http://www.cnblogs.com/java-koma/articles/2341791.html
2. http://blog.csdn.net/feifei454498130/article/details/8070254
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android(安卓)类加载模式
- 使用Android(安卓)Studio进行cocos2d-x开发
- Android-显示传感器的值