Android端通过httpCilent访问Tomcat服务器servlet

刚开始做Tomcat的开发,需要用Android设备访问Tomcat服务器。这里遇到几个问题。首先是,android端报错,无法创建httpClient对象。

//1.生成HttpClient对象并设置参数
CloseableHttpClient httpClient=HttpClients.createDefault();

报错:编译都没有问题,但是一运行就会报错:java.lang.NoClassDefFoundError: ..........意思是运行的时候找不到HttpClients,怎么new都是这么个错误。菜鸟没办法啊,到处找资料。。。。。

这里是jar包图:Android端通过httpCilent访问Tomcat服务器servlet_第1张图片

出现这个问题,我查阅了一下关于httpclient的资料:httpClient for android apatch,上面有一段写的比较清楚。This project represents an effort to provide an implementation of Apache HttpClient, which can be deployed on Google Android in parallel to the outdated version shipped with the platform while remaining partially API compatible with Apache HttpClient 4.3.   这里指出了google是怎么坑开源软件的,发了一顿牢骚,其实4.3.6的版本支持的不是很好。然后就下了一个4.4的jar包。

Android端通过httpCilent访问Tomcat服务器servlet_第2张图片

创建代码:

DefaultHttpClient httpClient = new DefaultHttpClient();
// 执行httpGet请求
HttpResponse response = httpClient.execute(httpGet);
String staturs = response.getStatusLine().toString();
可以看一下,现在返回状态是200,OK了。
接下来就是访问Tomcat的操作了,这里我就不介绍怎么搭建Tomcat了,有一些比较好的文章,我都贴出来,大家自己看了。

Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例     来自:yanzi1225627    csdn原创

eclipse中安装tomcat插件     

这里讲一下怎么开始吧,首先,我配置的是让eclipse去启动tomcat,如图有几个小猫在eclipse上:


我是让访问Tomcat的时候,无论你是从浏览器访问还是从Android端访问,都是访问的eclipse目录下的工程文件夹,也就是说,我的项目并没有部署到Tomcat的目录下去。你打开tomcat主目录的conf下有个server.xml文件( Tomcat/conf/server.xml  ),你会看到最后面有句这样子的话。


这句话是由项目下的web.xml文件覆盖tomcat的conf目录下web.xml文件起到作用的。文件如下:





    
        BikeServer
        com.gdut.bikeServer.BikeServer
    
    
        BikeServer
        /BikeServer
    

    
        index.jsp
    

关于web.xml这个文件到底干什么用,我们需要仔细研究一下,给一些参考资料: web.xml 中的listener、 filter、servlet 加载顺序及其详解

顺便,我们还需要了解一下,tomcat的各个目录结构到底是怎么样的,参考资料:tomcat下各文件夹的作用

以上都是作为一个参考而已。下面我说一下我遇到的一个问题吧,其实也是由于不清楚Tomcat在eclipse工程下的运作机制才导致的。

当我在使用Json格式传送数据的时候,会出现一些运行时错误,Java Runtime Error,错误的类型也是编译可以通过,但是运行就报错找不到类,开始以为是Json的JAR包不对,换了很多包,都显示报错。

这个错误是由于,我没有在eclipse工程下的WEB-INF/lib 目录下添加我的Json的jar包,只是所以出现了错误,这种错误对于小白来说,是摸不着头脑,明明在build path中添加了,编译也通过为什么就是出错呢?很郁闷。添加了之后就好了。

Android端通过httpCilent访问Tomcat服务器servlet_第3张图片
这些问题都是由于不清楚Tomcat+servlet开发造成的,囧死了,所以大家还是多看看资料,扎实一下基本功吧。普通java servlet的开发不同于android开发。

OVER。。。。写下来,自己记着。



你可能感兴趣的:(Android,Java)