zoukankan      html  css  js  c++  java
  • 客户端+服务器端总结

    常见错误与解决方案:

    错误1、服务器重启后,自动停止

    解决办法:一般查看E:Program FilesApache Software FoundationTomcat 7.0logs,tomcat安装目录下面的tomcat7-stderr.2014-05-10.txt,一般性错误需要在这里面找,错误如下:

    严重: The required Server component failed to start so Tomcat is unable to start.
    org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 7 more
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    后来,装了又重启机器,还是不行,然后在重装。目标定位在context上面(service.xml里面的加上的一句话)。看看他到底如何影响你的服务器的。其实,这个可以理解为将服务器的启动项的地址改不了,每次都不会从原来的tomcat里面去找,而是从我们改变的目录底下去找启动文件,然后执行里面的操作。这些操作都是编译完的。

    web.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
        <servlet>
            <servlet-name>poi</servlet-name>
            <servlet-class>zhuxuekui.service.SrvPoi</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
       
        <servlet-mapping>
            <servlet-name>poi</servlet-name>
            <url-pattern>/poi</url-pattern>
        </servlet-mapping>
    </web-app>

          千万千万不要写错,也不要多写,之前在servlet里面套servlet太不应该,一句的结尾与结束,肯定有其原因。还有就是假如你之前没错,后来突然错了,你就不要在搞以前的操作了。错误肯定发生在后面,而不是前面。这个一定要注意。我是深受其害。

          servlet里面的文件可以从下往上看,首先在手机客户端配置好ip地址+/poi(局域网即可),当程序执行到这一步的时候,服务器自动搜索web.xml中的/poi,然后通过servlet-name,找到servlet中的servlet-name,然后找到包名+类名的类。这个其实就有一对标签。servlet 以及  servlet映射。这个操作其实就是通过http通信协议,数据协议用的JSON,然后将数据通过tomcat服务器传至mysql数据库。这两者之间的联系通过两个函数:手机客户端的post 与 服务器端的dopost ,而且,每次他俩都是一对同时执行,就如上面我刚刚讲到的一样,假如客户端提交的是post请求,那么服务器端执行SrvPoi类中的dopost(),来处理请求,一一对应。

    错误2、mysqlworkbench 删掉原来的表后,无法重现再建表。

    解决方案:1、不删,直接修改表名,表里面的字段,而不用删除。

                   2、查找与删除要用合适的方案,不要一味的删数据库或者表。这个操作,貌似还需要重启workbench。

    错误3、每次执行到下面这步,程序出错。

        TransactionManager.callInTransaction(getConnectionSource(),
                        new Callable<Void>() {
    
                            @Override
                            public Void call() throws Exception {
                                ArrayList<MKPoiInfo> bdPois = res.getAllPoi();
                                ArrayList<Poi> pois = new ArrayList<Poi>();
                                for (MKPoiInfo poi : bdPois) {
                                    Poi p = new Poi(poi, "测试用户");
                                    create(p);
                                    pois.add(p);
                                }
                                sendPoiToServer(pois);
                                return null;
                            }
                        });
    2014/5/10 21:05:36
    
    程序运行到这一步出错。这是啥问题,请教。

    在我们调试错误的时候,学会看日志有时候事半功陪,有些时候纠结很多什么都未必能解决。所以调试时 需要 单步调试(第一个警告栏不用按下)+日志。错误如下:

    image

    原因:col_id需要唯一,重复插入相同的数据会失败。

    这里介绍下,为什么虚拟机可以与服务器端联系在一起,而手机有时候却不行。

    主要还是上面的原因,所以在手机上调试的时候,必须要卸载再卸载。然后在测试。我们可以通过捕捉发现错误之所在。

    错误4、如何保证数据传输过去。

    解决:1、保证防火墙关闭 2、最好在一个局域网下 3、保证手机浏览器与电脑浏览器都可以连接服务器。可以多测测。IP地址一定要对。

    截图:

     

  • 相关阅读:
    迭代器
    闭包函数与装饰器
    pyhton的函数
    文件处理
    Python2和Python3编码的区别
    hdu5080:几何+polya计数(鞍山区域赛K题)
    hdu1695:数论+容斥
    HDU3564 --- Another LIS (线段树维护最值问题)
    hdu1521:排列组合---指数型母函数
    poj1014:母函数+优化
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/3721304.html
Copyright © 2011-2022 走看看