常見錯誤與解決方案:html
錯誤一、服務器重啓後,自動中止java
解決辦法:通常查看E:\Program Files\Apache Software Foundation\Tomcat 7.0\logs,tomcat安裝目錄下面的tomcat7-stderr.2014-05-10.txt,通常性錯誤須要在這裏面找,錯誤以下:mysql
嚴重: 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
web.xml文件以下:sql
<?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(),來處理請求,一一對應。apache
錯誤二、mysqlworkbench 刪掉原來的表後,沒法重現再建表。瀏覽器
解決方案:一、不刪,直接修改表名,表裏面的字段,而不用刪除。tomcat
二、查找與刪除要用合適的方案,不要一味的刪數據庫或者表。這個操做,貌似還須要重啓workbench。服務器
錯誤三、每次執行到下面這步,程序出錯。
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 程序運行到這一步出錯。這是啥問題,請教。
在咱們調試錯誤的時候,學會看日誌有時候事半功陪,有些時候糾結不少什麼都未必能解決。因此調試時 須要 單步調試(第一個警告欄不用按下)+日誌。錯誤以下:
緣由:col_id須要惟一,重複插入相同的數據會失敗。
這裏介紹下,爲何虛擬機能夠與服務器端聯繫在一塊兒,而手機有時候卻不行。
主要仍是上面的緣由,因此在手機上調試的時候,必需要卸載再卸載。而後在測試。咱們能夠經過捕捉髮現錯誤之所在。
錯誤四、如何保證數據傳輸過去。
解決:一、保證防火牆關閉 二、最好在一個局域網下 三、保證手機瀏覽器與電腦瀏覽器均可以鏈接服務器。能夠多測測。IP地址必定要對。
截圖: