本文只是博主在編寫過程當中遇到的一些問題,歡迎你們留言繼續補充! |
多半是由於jdk版本的緣由,調整一下便可:html
解決方法:Build Path ==> Configure Build Path… ==>Libraies==>找出其中帶紅叉那個jdk;Remove==>java
而後添加本身使用的jdk版本:Add Library==>JRE System Library==>選擇本身的jre後點擊完成;node
若仍然有錯,那麼:Add Library==>Server Runtime==>選擇本身的tomcat後點擊完成;mysql
若是這時你的項目裏面沒錯了,可是項目上仍是有紅叉的話,解決方案參考http://www.cnblogs.com/mmzs/p/8398109.htmljquery
開發一個Servlet,代碼和配置路徑都沒問題,HttpServlet竟然報錯了!嚇壞我了,因而開始了,調錯之路。linux
解決方法:鼠標右擊項目工程——》Build Path——》點擊comfigure Build Path進入----->選擇java Bulid Path------>在左邊點擊Libraries--------->選擇Add Librar,在Add Library中選擇Server Runtime,點擊下一步Next。------>選擇Apache Tomcat,點擊完成。------>這時,在Libraries下能夠看到Apache Tomcat了就能夠點擊ok按鈕------>代碼出現的紅扠都消失了。web
解決辦法:將時間調大便可;而後保存修改,重啓動Tomcat;若是仍然報Timeout錯誤,繼續上述步驟將Timeouts下的Start值改大。spring
這個主要是在maven配置項目時出現的錯誤,相似上面的這種報錯均可以用如下方式解決。sql
解決方案;項目右擊-->properties-->Deployment Assembly-->add-->Java Build Path Entries-->導入全部依賴的Jar包,從新tomcat便可。數據庫
解決辦法: 使用 maven-compiler-plugin 將 maven 編譯級別改成 jdk1.6 以上:
1 <build> 2 <plugins> 3 <!-- define the project compile level --> 4 <plugin> 5 <groupId>org.apache.maven.plugins</groupId> 6 <artifactId>maven-compiler-plugin</artifactId> 7 <version>2.3.2</version> 8 <configuration> 9 <source>1.7</source> 10 <target>1.7</target> 11 </configuration> 12 </plugin> 13 </plugins> 14 </build>
如若不能解決,試試如下辦法:
maven配置文件不是最新的問題、maven中pom.xml的war報錯解決方法
問題背景:
工程爲maven工程,ContextLoaderListener類位於spring-web-3.1.0.RELEASE.jar包中。檢查了maven的pom.xml,依賴引入正常。在工程Maven Dependencies視圖中也能看到spring-web-3.1.0.RELEASE.jar包被正常引入進來了。
錯誤緣由:
進入到tomcat的部署路徑.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下檢查了一下,發現工程部署後在WEB-INF文件夾下沒有生成lib目錄,正常狀況下,會生成lib目錄並把工程的全部依賴jar包都部署到該目錄下。
解決方案:
1.右鍵點擊項目--選擇Properties
選擇Deployment Assembly,在右邊點擊Add按鈕,在彈出的窗口中選擇Java Build Path Entries
2.點擊Next,選擇Maven Dependencies
3.點擊Finish,而後能夠看到已經把Maven Dependencies添加到Web應用結構中了
解決方案:
方案一:
eclipse中:
依次點擊:Window--->Preferences--->Java--->Installed JREs--->選中本身使用的jre--->Edit--->在Default VM arguments這一欄添加以下內容:
-server -Xms512M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=512M -XX:MaxPermSize=512M
而後保存退出,重啓tomcat生效。
方案二:
到tomcat/bin的目錄下,找到catalina.bat文件(這個是window文件,若是是linux系統,則修改的是catalina.sh文件)用文本編輯器打開,
在
cygwin=false(linux系統)上
添加下面這一行:
JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m -XX:MaxNewSize=256M"
解釋一下各個參數:
-Xms4096M:初始化堆內存大小(注意,不加M的話單位是KB);
-Xmx4096M:最大堆內存大小;儘可能將Xms和Xmx兩個設置爲同樣的,這樣能夠避免堆內存擴展,減小申請內存的時間;
-XX:PermSize=512M:初始化類加載內存池大小;
-XX:MaxPermSize=2048M:虛擬機的最大類加載內存池大小;儘可能將PermSize和MaxPermSize兩個設置爲同樣的,這樣能夠避免擴展內存,其實也能夠說不容許擴展內存;
-XX:MaxNewSize=256M:永久代的內存上限,在HotSpot虛擬中就至關於方法區的內存上限;
還有一個-server參數,是指啓動jvm時以服務器方式啓動,比客戶端啓動慢,但性能較好,你們能夠本身選擇。
錯誤緣由:jdk版本不一致問題
解決辦法:將配置文件的jdk版本都統一
錯誤緣由:應該是和jar包衝突有關,但找了半天也沒找着衝突的jar包是哪一個,可是jar包確定跟tomcat有關,後來有個帖子說IDE集成tomcat會有影響,這個報錯以前,我剛把Eclipse配置了RuntimeEnvironments,因此我再次把他去掉,問題解決。
解決辦法:Eclipse-->Windows-->perferences-->RuntimeEnvironments-->將tomcat去掉
解決辦法:在項目上右鍵選擇properties-->java build path-->Add Library...-->JRE System Library-->workspace default jre
解決辦法:Window-->General-->Content Types-->Text-->Java Properties File-->*.properties(locked)--->Default encoding:UTF-8-->Update
詳見:http://www.cnblogs.com/mmzs/p/8761417.html
網上網友的解決方法有: 大概3種,一種認爲是要修改root的密碼,一種認爲是遠程鏈接的權限被限制了,一種是經過寫一個文件在Dos裏面運行實現。
個人這個問題的一種解決方法:爲當前用戶(個人是root用戶)添加對該表的管理員權限,便可;由於用了可視化的sql管理工具,很容易就解決了問題。
在確認本身的頁面是使用utf-八、數據庫和表的編碼格式是utf8時;修改配置文件my.ini
[client] port=3306 [mysql] default-character-set=utf8
# The TCP/IP Port the MySQL Server will listen on
#Path to the database root # The default character set that will be used when a new schema or table is |
而後:開始-->運行-->輸入:services.msc,打開「服務」,找到MySQL服務,右鍵重啓便可。
也可在可視化工具中:查詢數據庫和表的編碼格式
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+-----------------------+ | Variable_name | Value +--------------------------+-----------------------+ | character_set_client | utf8 *客戶端使用的編碼 | | character_set_connection | utf8 數據庫鏈接時使用的編碼 | | character_set_database | utf8 數據庫用的編碼 | | character_set_results | utf8 *查詢結果集用的編碼 | | character_set_server | utf8 服務器使用的編碼 | | character_set_system | utf8 系統使用的編碼 |
告知服務器客戶端使用的編碼: SET character_set_client=gbk;
告知服務器返回的結果集請使用UTF8: SET character_set_results=gbk;
第一種狀況: MySQL server PID file could not be found! [FAILED] Starting MySQL...The server quit without updating PID file [FAILED]ydata/centossz008.pid). 第二種狀況: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
第二種狀況:
錯誤緣由:權限問題
解決辦法: chown -R mysql.mysql /software/mysql-5.5.32
第一種狀況:
錯誤緣由:MySQL默認是開啓了日誌文件的,若是數據操做比較頻繁就會產生大量的日誌,在/usr/local/mysql/var/下面產生mysql- bin.0000* 相似的文件,並且通常都在幾十MB到幾個GB,更甚會吃掉整個硬盤空間,歷來致使mysql沒法啓動或報錯。
解決辦法:
解決方法a、完全禁用MySQL日誌:修改/etc/my.cnf 文件,找到
log-bin=mysql-bin
binlog_format=mixed
再這兩行前面加上#,將其註釋掉,再執行/etc/init.d/mysql restart便可。
若是實在想保留日誌,能夠在/etc/my.cnf里加入
expire_logs_days = 30
而後重啓mysql,這樣30天就會自動清理日誌。
網上有很多這個緣由的解釋,可是都不是我想說的。
data/mysql-bin.index 沒有刪除,data/mysql-bin.index是存放日誌文件索引的文件,只刪除了日誌文件而沒有對日誌的索引文件作處理顯然是不行的。
刪除data/mysql-bin.index文件,再service mysqld start就能夠了。
解決方法b:
首先確認你的jdk安裝路徑是配置的沒問題:
配置JDK環境: |
JAVA_HOME:D:\software\JDK1.7 |
Path:%JAVA_HOME%\bin;%JAVA_HOME%\lib; |
而後出現的問題就是找不到jar包;
因此博主提供一種最簡單的解決方式:將所需jar包導入到以下目錄:D:/software/jdk1.7.0_79/jre/lib/ext 便可;
可是在直接使用java -jar Test.jar命令運行時,能夠成功;
可是有時開啓你的hdfs的集羣時會報
相似的錯;緣由就是包導入的問題,因此你須要將D:/software/jdk1.7.0_79/jre/lib/ext 下的某些包刪掉便可;
### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.panda.test1.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.panda.test1.User.<init>()
錯誤緣由是,User.java類中沒有默認的無參構造函數,加上無參構造函數後,錯誤消失。
解決方案:1. model中的get/set方法與成員變量不一。
2. 構造函數被重載過,可是沒有空的構造函數。
3. 最好不要使用簡單類型,如int, long等,改用對象模式Integer, Long等。在寫條件查詢時會用到判斷<if xxx != null > … </if>的
錯誤緣由:Mybatis中jdbcType整形應該爲NUMERIC
解決辦法:
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal BIT boolean BOOLEAN boolean TINYINT byte SMALLINT short INTEGER int BIGINT long REAL float FLOAT double DOUBLE double BINARY byte[] VARBINARY byte[] LONGVARBINARY byte[] DATE java.sql.Date TIME java.sql.Time TIMESTAMP java.sql.Timestamp CLOB Clob BLOB Blob ARRAY Array DISTINCT mapping of underlying type STRUCT Struct REF Ref DATALINK java.net.URL[color=red][/color]
錯誤緣由:pojo類沒有實現java.io.serializable序列化接口
解決辦法:
將查詢的結果都起別名,並且這些別名不是隨便起的,別名對應於TCard類的屬性,這樣才能成功查到結果:
select a.T_ID as tid, a.START_NUM as startNum, a.END_NUM as endNum from T_CARD a
解決辦法: 點這裏
解決辦法:將id換成onclick;從而定義一個函數,新建一個函數,這樣子就能使用那個函數了。
錯誤提示:PageEntity pageEntity = (PageEntity) ((Map<String, Object>) map).get("pageEntity");
錯誤緣由:上面面的方式不能強轉成實體類,由於LinkedHashMap和實體類都實現了序列化接口
解決辦法:PageEntity pageEntity = JSONObject.toJavaObject((JSON) JSON.toJSON(((LinkedHashMap)map).get("pageEntity")), PageEntity.class);
錯誤緣由:.xml文件沒加載起,極可能是配置出了問題,或者一不當心改動了配置
解決辦法:http://www.cnblogs.com/mmzs/p/8757709.html
解決辦法:檢查構造方法
報錯:(to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.mmzs.cloud.entity.User_$$_jvst73b_0["handler"])
解決辦法:在實體類上面加上註解 @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })