Tomcat部署遇到的問題

項目服務端:Tomcat6.0.41java

選用數據庫:Mysql5.6.17mysql

JDK環境:1.6.37web

運行系統:Windows server 2008(64bit)spring

===========================================================sql

部署好Tomcat項目,運行startup.bat.提示錯誤(節選):數據庫

……apache

2014-8-20 15:59:13 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /pay
2014-8-20 15:59:13 org.apache.cxf.jaxrs.provider.ProviderFactory setDefaultProvider
信息: Problem with setting the default provider org.apache.cxf.jaxrs.provider.JSONProviderorg/codehaus/jettison/mapped/TypeConverter
2014-8-20 15:59:14 org.apache.catalina.core.StandardContext start
嚴重: Error listenerStart
2014-8-20 15:59:14 org.apache.catalina.core.StandardContext start
嚴重: Context [/xGameServer] startup failed due to previous errors
2014-8-20 15:59:14 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
嚴重: The web application [/xGameServer] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
2014-8-20 15:59:14 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
嚴重: The web application [/xGameServer] appears to have started a thread named [Thread-2] but has failed to stop it. This is very likely to create a memory leak.
2014-8-20 15:59:14 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
嚴重: The web application [/xGameServer] appears to have started a thread named [Thread-3] but has failed to stop it. This is very likely to create a memory leak.
2014-8-20 15:59:14 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
嚴重: The web application [/xGameServer] appears to have started a thread named [Thread-5] but has failed to stop it. This is very likely to create a memory leak.
2014-8-20 15:59:14 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
嚴重: The web application [/xGameServer] appears to have started a thread named [NioSocketAcceptor-1-idleStatusChecker] but has failed to stop it. This is very likely to create a memory leak.tomcat

……多線程

===========================================================app

在這裏,須要吐槽tomcat的錯誤提示。由於它的錯誤提示很表面。單純看這錯誤提示內容,紅色部份內容,咱們簡單地理解爲web項目啓動了JDBC驅動程序,可是在web項目中止時,JDBC驅動程序註銷失敗。爲了防止內存泄漏,該驅動程序被強制幹掉了....而後就引起了後面一大片的藍色部份內容:提示好多好多線程被啓動了,嚇唬你不關閉線程的話可能會致使程序內存泄漏(也就是可能會致使程序掛掉)。

這個時候,你須要這樣一份文件(Tomcat不自帶):

============================文件內容===============================

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

============================文件內容===============================

新建一個記事本,將上面綠色字體內容C-V操做,而後保存文件爲logging.properties

OK,完成。

將這份文件拷貝到部署項目目錄的\WEB-INF\Classes目錄下。

e.g.假設個人部署項目目錄名爲:HeHe

把文件放在:webapps\HeHe\WEB-INF\Classes\logging.properties

而後再次運行tomcat的startup.bat,界面顯示的錯誤不變,咱們要查看的是Tomcat根目錄下的logs目錄(例如:E:\tomcat6\logs),有一份文本文件:error-debug.xxxx-xx-xx

回到咱們項目運行失敗的問題上,從error-debug.xxxx-xx-xx文件中能夠看到,最根本報錯的地方是:

===========================================================

2014-8-20 16:25:46 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2014-8-20 16:25:51 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /pay
2014-8-20 16:25:51 org.apache.cxf.jaxrs.provider.ProviderFactory setDefaultProvider
信息: Problem with setting the default provider org.apache.cxf.jaxrs.provider.JSONProviderorg/codehaus/jettison/mapped/TypeConverter
2014-8-20 16:25:52 org.apache.catalina.core.StandardContext listenerStart
嚴重: Exception sending context initialized event to listener instance of class com.linyun.xgame.listener.InitSystemListener
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1130];   
--- The error occurred in com/linyun/xgame/dao/sqlmap/Global.xml.  
--- The error occurred while executing query.  
--- Check the    SELECT VALUE_INT AS valueInt, VALUE_STR AS valueStr,PRO_1 AS pro_1,PRO_2 AS pro_2,PRO_3 AS pro_3,PRO_4 AS pro_4,PRO_5 AS pro_5,PARA_ID AS paraID,PARA_DESC AS paraDesc,ISCLIENT AS isclient     FROM T_GLOBAL  .  
--- Check the SQL Statement (preparation failed).  
--- Cause: java.sql.SQLException: null,  message from server: "Host 'iZ23e08c18sZ' is not allowed to connect to this MySQL server"; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/linyun/xgame/dao/sqlmap/Global.xml.  
--- The error occurred while executing query.  
--- Check the    SELECT VALUE_INT AS valueInt, VALUE_STR AS valueStr,PRO_1 AS pro_1,PRO_2 AS pro_2,PRO_3 AS pro_3,PRO_4 AS pro_4,PRO_5 AS pro_5,PARA_ID AS paraID,PARA_DESC AS paraDesc,ISCLIENT AS isclient     FROM T_GLOBAL  .  
--- Check the SQL Statement (preparation failed).  
--- Cause: java.sql.SQLException: null,  message from server: "Host 'iZ23e08c18sZ' is not allowed to connect to this MySQL server"
 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

……

===========================================================

紅色部分就把問題暴露出來了:數據庫訪問失敗了...

訪問數據庫失敗緣由:Mysql默認是不能夠經過遠程機器訪問的,因此咱們須要開啓遠程訪問。

解決方式(網上有提供其餘方法,這裏只說我選擇的方式):

1.進入到Mysql控制檯。運行-CMD,一直cd進入到Mysql的bin目錄,輸入:mysql -uroot -p

2.提示輸入mysql的訪問密碼。

 

3.輸入密碼後輸入:use mysql;(記得分號)

4.輸入:show tables;

5.輸入:select host from user;

6.輸入:update user set host = '%' where user = 'root' and host = 'localhost';

OK。。。大功告成。。。若是執行命令沒出錯的話,再次運行startup.bat,這回就能夠運行妥妥的。

相關文章
相關標籤/搜索