1. 程式人生 > >javaweb開發中的那些坑

javaweb開發中的那些坑

最近電腦有點問題,沒辦法就重灌系統了,花了一個晚上重灌IDE、,配置環境,好不容易把eclipse的環境弄好,載入之前的專案時卻又到各種問題,一怒之下,寫一篇記錄下在javaweb開發中遇到的各種坑

一、Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/asaad]]

在重新配置tomcat的時候會遇到這種情況,一般報錯如下: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8006]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.startup.Catalina.start(Catalina.java:625) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:4) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 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:769) 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:441) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 9 more Caused by: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 下面是具體的解決方案: 1、右擊web工程-》屬性或Build Path-》Java Build Path->Libraries-> Add Libray...->Server Runtime -》Tomcat Server 2、切換到Java Build Path介面中的Orader and Export,選擇Tomcat。 注意: 按以上方法操作時,若開啟Server Runtime後一片空白,需要設定Apache伺服器。設定方法為:window->Preferences->Server->Runtime Environment -> add --> 選擇Apache的版本後點Next,再填入你apache伺服器軟體的安裝(解壓後)地址。

二、Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.IllegalArgumentException

報錯: Exception thrown from LifecycleProcessor on context close java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Tue Dec 27 21:06:21 CST 2016]; root of context hierarchy at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:360) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1057) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1010) at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:549) at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:143) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4859) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Destroying singletons in org.s
[email protected]
414bb830: defining beans [admin,advice,business,code,comment,day,job,jobInter,jobType,orders,page,user,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,businessServiceImpl,commentServiceImpl,jobServiceImpl,ordersServiceImpl,userServiceImpl,dataSource,log-filter,sqlSessionFactory,org.mybatis.spring.mapper.MapperScannerConfigurer#0,gson,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy 出現這類報錯,一般是spring版本與當前jdk版本不相容造成的,筆者裝的是jdk1.8 ,spring是3.2的,所以報錯了。解決方案是:更新 Spring-Core 到 4.0.(貌似3.2.16 也可以~~
)以上或者

三、mysql遠端連線失敗

Mysql為了安全性,在預設情況下使用者只允許在本地登入,但有時候還是需要遠端連線,解決辦法:

1、允許root使用者在任何地方進行遠端登入,並具有所有庫任何操作許可權,

具體操作如下:
在本機先使用root使用者登入mysql: mysql -u root -p"youpassword"  進行授權操作: mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; 過載授權表: FLUSH PRIVILEGES; 即可。但不建議這樣操作,因為這樣任何人都可能登陸

2、允許root使用者在一個特定的IP進行遠端登入,並具有所有庫任何操作許可權,具體操作如下:

 在本機先使用root使用者登入mysql: mysql -u root -p"youpassword" 進行授權操作: GRANT ALL PRIVILEGES ON *.* TO [email protected]"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION; 過載授權表: FLUSH PRIVILEGES; 退出mysql資料庫: exit

3、刪除使用者授權:

需要使用REVOKE命令,具體命令格式為: REVOKE privileges ON 資料庫[.表名] FROM user-name; 具體例項,先在本機登入mysql: mysql -u root -p"youpassword" 進行授權操作: GRANT select,insert,update,delete ON TEST-DB TO [email protected]"172.16.16.152" IDENTIFIED BY "youpassword"; 再進行刪除授權操作: REVOKE all on TEST-DB from test-user; ****注:該操作只是清除了使用者對於TEST-DB的相關授權許可權,但是這個“test-user”這個使用者還是存在。 最後從使用者表內清除使用者: DELETE FROM user WHERE user="test-user"; 過載授權表: FLUSH PRIVILEGES; 退出mysql資料庫: exit

4、MYSQL許可權詳細分類: 

全域性管理許可權: FILE: 在MySQL伺服器上讀寫檔案。 PROCESS: 顯示或殺死屬於其它使用者的服務執行緒。 RELOAD: 過載訪問控制表,重新整理日誌等。 SHUTDOWN: 關閉MySQL服務。 資料庫/資料表/資料列許可權: ALTER: 修改已存在的資料表(例如增加/刪除列)和索引。 CREATE: 建立新的資料庫或資料表。 DELETE: 刪除表的記錄。 DROP: 刪除資料表或資料庫。 INDEX: 建立或刪除索引。 INSERT: 增加表的記錄。 SELECT: 顯示/搜尋表的記錄。 UPDATE: 修改表中已存在的記錄。 特別的許可權: ALL: 允許做任何事(和root一樣)。 USAGE: 只允許登入--其它什麼也不允許做。

四、雲伺服器不能通過80埠訪問

看看你的防火牆有沒有開著,把它關掉。筆者是用騰訊雲伺服器的,在騰訊雲的後臺控制中心,選擇預設全放通的安全組,選擇了注意要強化下伺服器密碼。如果還不行,檢查是否安裝了IIS? 如果安裝了IIS角色,請先停止IIS服務.,或者直接刪除掉。實在不行就通過netstat -ano|findstr 80找到80埠的PID ,然後到工作管理員把這個PID殺了。
持續更新~~~

相關推薦

javaweb開發那些

最近電腦有點問題,沒辦法就重灌系統了,花了一個晚上重灌IDE、,配置環境,好不容易把eclipse的環境弄好,載入之前的專案時卻又到各種問題,一怒之下,寫一篇記錄下在javaweb開發中遇到的各種坑 一、Failed to start component [Standard

【java學習筆記】淺析JavaWeb開發Model1模式和Model2模式

Model1模式   JavaBean就是java類,JavaBean分兩類:一類是實體Bean,一類是業務Bean model1模式優點:執行效率高,開發效率比較高,適合小型專案 model1模式缺點:邏輯比較混亂,頁面混亂,維護困難,擴充套件不容易   Model2模式

PHPisset()、empty()函式那些。。。

1,empty — 檢查一個變數是否為空,bool empty ( mixed $var ) 判斷一個變數是否被認為是空的。當一個變數並不存在,或者它的值等同於false,那麼它會被認為不存在。如果變數不存在的話,empty(

關於JavaWeb開發的基礎知識點——resquest response

關於JavaWeb開發中的基礎知識點——resquest response 我們所瞭解對於一個客戶端向伺服器發出請求的時候,會分別如下兩個成員 a.HttpServletRequest request b.HttpServletResponse response 這兩個物件,

React-Native開發點實錄

從移動開發的角度來說,iOS和Android都有自己的一些UI特性,所以react-native宣稱的寫一套程式碼就可以通用就是騙人的鬼話,實際開發中,你會發現很多控制元件在iOS和Android上展示的效果不一樣,或者有些屬性支援iOS不支援Android。rea

msui開發那些

最近公司公眾號二次開發,前段用到了msui(比較小眾的ui),總結一下里面的坑。 官方api連結 (淘寶前團隊) 不在維護    1,$   這個採用的是zepto輕量級的庫,而不是jquery,大家遇到$報錯,或者調取不了一些jquer

PHP開發那些bug

1、關於編輯器的 phpstorm是一款強可大的編輯器,大家都知道使用phpstorm會帶來非一般的感覺,以前我非常不習慣使用快捷鍵,後來發現使用快捷鍵不僅能提高開發的效率,同時能夠減少bug的出現。 ctrl+shift+n 快速開啟一個檔案。 alt+ctrl+l

JavaWeb開發走過的之一

1.jdk1.7和jdk1.8不相容問題      專案完成編碼的時候,我將專案打包給管理伺服器的同事放上伺服器測試,結果報404錯誤。當時我就很納悶,為什麼呢?專案在我電腦的環境測試可行。後來我檢視

JavaWeb開發判斷App端是否已登入的方式

在token生成上考慮到單點登入,所以token不能一直固定,否則在任何時候,只要擁有token就可以同時至少兩個人使用同一個帳戶,這是目前我們業務上不允許的。最終我選擇了”username+password+登入時間“做MD5加密作為token(在保證唯一和可變的情況下

JavaWeb開發的Session管理

Session管理是Web應用程式開發中一個非常重要的主題,這是因為Web語言HTTP是無狀態的。在預設情況下,Web伺服器不知道一個HTTP請求時來自初次使用者,還是來自之前訪問過的使用者。例如,we

JavaWeb開發重新認識檔案上傳

        檔案上傳功能在很多軟體中都是必備的功能之一,所以,檔案上傳也就不顯得那麼有技術含量了,但是如果要把這個功能做好甚至完美,可不是三兩下就能搞定的,其中包含的諸多細節盡在不言中。我們來看一下,做一個上傳功能需要考慮什麼,以apk檔案上傳為例:       1、上

iOS開發那些

原文連結:http://www.jianshu.com/p/da80c4b7190e 最近重新拿起了iOS的開發,使用OC和Swift混編,碰到了一些比較棘手的問題,在這裡記錄下來,方便自己以後或他人不再入坑。這篇文章的內容包含: UITableViewCe

遊戲開發之四 關於單位

Unity的一個單位為一米(m) 如何設定3dsMax的單位才能保證模型大小正確呢? 首先假如3dsMax的單位設定如下: 以上的意思是3dsMax中一個單位為1cm,並且顯示的單位為cm 如果以這個設定匯入Unity的話,保持Scale Factor為1,需要勾

專案開發

一個較為失敗的專案覆盤 寫在前面 前一陣子部門啟動了一個新的專案叫做資源成本決策系統,到目前此專案已經基本上按照啟動前的規劃做的大差不差,但最近開會需要在這個專案中新增新的功能,這可真是要了命了,想想不管從資料庫上設計上,程式碼設計上可拓展性都比較差,專案換

javaWeb開發專案總結(針對匯百資產管理後臺專案)

~~~這篇文章只針對現在開發中的專案筆記   最原始的程式碼生成展示最原始的專案介面      1.新建包 選擇目錄new other class javaclass  source folder加檔案目錄name設定類名 2.定義屬性等等  右鍵source 中3個選項自

談一談Java開發(一) -- log4j2在SaaS專案的應用

背景介紹: 做server端開發有些年頭了,特別是開始做SaaS型別的專案時,深知log的重要性,特別是半夜三更使用者(大都是美國那邊的)遇到問題的電話打過來,這個時候沒有一個強大log,那只有抓瞎的份了。以前都是走的微軟系的開發工具,log的框架也是別人早就寫好的,所以

JavaWeb開發的重要概念

C/S計算模式:客戶機與使用者互動,收集資訊,通過網路向伺服器請求資料庫、電子表格、文件等的處理工作;伺服器負責管理資料庫的訪問,為多個客戶程式管理資料。B/S計算模式:使用者通過瀏覽器向分佈在網路上的許多伺服器傳送請求,伺服器對瀏覽器的請求進行處理,將使用者所需的資訊返回給瀏覽器。CGI:通用閘道器介面,一

高德地圖開發

1。不設定Marker 的 Title 自定義的infowindow就無法顯示, 解決辦法:加上title 2。自定義infowindow時傳進去的view的最外層佈局引數不起作用, 解決辦法:在

JavaWeb開發Ajax技術、json與java實現List、Map資料直接傳遞的研究

 一、在JavaWeb開發中基於jquery框架來使用ajax技術,Json與後臺servlet進行資料互動示例,下面示例中基於servlet技術,沒有使用struts2等框架。         由於專案需要通過ajax得到後臺的List物件、map物件裡面的值,閒暇時間

javaweb開發的中文亂碼問題,使用Filter過濾器解決

get請求和post請求時候的中文亂碼問題 1.當form表單中的請求為get請求的時候 例如獲取使用者名稱: String username = new String(username.getBytes("ISO-8859-1"),"UTF-8");