myeclipse 遇到的一些問題及解決方案

1.、提示鍵配置


通常默認狀況下,Eclipse ,MyEclipse 的代碼提示功能是比Microsoft Visual Studio的差不少的
,主要是Eclipse ,MyEclipse自己有不少選項是默認關閉的,要開發者本身去手動配置。若是開發
者不清楚的話,就不知道Eclipse ,MyEclipse的代碼提示功能同樣能像Microsoft Visual Studio的
代碼提 示功能同樣強大。
先舉個簡單的例子說明問題所在,例如在Eclipse ,MyEclipse代碼裏面,打個foreach,switch等
這些,是沒法獲得代碼提示的(不信本身試試),其餘的就更不用說了,而在Microsoft Visual
Studio 裏面是獲得很是友好的代碼提示的。實際上,Eclipse ,MyEclipse代碼裏面的代碼提示功能
默認的通常 是點「.」,通常是有了點「.」,纔會有代碼提示。
原理:「Auto Activation triggers for java」這個選項就是指觸發代碼提示的的選項,把「.」
 改爲「.abcdefghijklmnopqrstuvwxyz(,」的意思,就是指遇到26個字母和.,(這些符號就觸發
代碼提 示功能了。加強Eclipse ,MyEclipse 的代碼提示功能,具體怎麼樣來配置?
下面開始說步驟:
1. 打開MyEclipse ,而後「window」→「Preferences」
2. 選擇「java」,展開,「Editor」,選擇「Content Assist」。
3. 選擇「Content Assist」,而後看到右邊,右邊的「Auto-Activation」下面的「Auto 
Activation triggers for java」這個選項。其實就是指觸發代碼提示的就是「.」這個符號.
4. 「Auto Activation triggers for java」這個選項,在「.」後加abc字母,方便後面的查找修改。而後「apply」,點擊「OK」。
5. 而後,任意選擇個項目「File」→「Export」,在彈出的窗口中選擇「Perferences」,點擊「下一步」。
6. 選擇導出文件路徑,本人導出到桌面,輸入「test」做爲文件名,點擊「保存」。
7. 在桌面找到剛在保存的文件「test.epf」,右鍵選擇「用記事本打開」。
8. 能夠看到不少配置MyEclipse 的信息
9. 按「ctrl + F」快捷鍵,輸入「.abc」,點擊「查找下一個」。
10. 查找到「.abc」的配置信息.
11. 把「.abc」改爲「.abcdefghijklmnopqrstuvwxyz(,」,保存,關閉「test.epf」。
12. 回到MyEclipse 界面,「File」→「Import」,在彈出的窗口中選擇「Perferences」,點
擊 「下一步」,選擇剛在已經修改的「test.epf」文件,點擊「打開」,點擊「Finish」。該步驟
和上面 的導出步驟相似。
13. 最後固然是進行代碼測試了。隨便新建一個工程,新建一個類。在代碼輸入switch,foreach等
進行 測試。你當即會發現,果真出了提示,並且不管是敲哪一個字母都會有不少相關的提示了,很流
暢,很方便。
總結:「Auto Activation triggers for java」這個選項就是指觸發代碼提示的的選項,把「.」改
成 「.abcdefghijklmnopqrstuvwxyz(,」的意思,就是指遇到26個字母和.這些符號就觸發代碼提示功能了。
最後:自動提示彈出的時間最好改爲100毫秒如下,否則你都完事了,自動提示才彈出來。


2.調整Myeclipse中代碼的顯示大小


window->preferences->general->apperance->colors and fonts->basic->text->fonts
而後點擊change 就能夠改了!




三、.MyEclipse裏面如何用快捷鍵打出System.out.println():
若是你打印Sy字符時沒有提示名爲sysout的命令名,你能夠自定義要打印的字符串和命令名。相似(可key—value)能夠在 Windows->Preferences->Java->Editor->Templates->new 這裏就能夠自定義了。




4.提示快捷鍵設置:
打開Window->Preference->Generate->Keys,出現一個大的對話框,"Alt+/"對應的命令名稱是:"Content Assist",找到該條命令,單擊選中它。這時在窗口下面的Binding 和 When 會出現自動顯示該命令的信息,刪掉Binding中的信息,而後按下鍵盤Alt+/,這個時候Binding就會自動顯示Alt+/的快捷鍵,而後when窗口中選擇Editing Java Source ,最後點擊OK。


5.java.io.IOException: 句柄無效。


java.io.IOException: 句柄無效。
at java.io.FileInputStream.close0(Native Method)
at java.io.FileInputStream.close(Unknown Source)
at java.io.PushbackInputStream.close(Unknown Source)
at java.util.zip.InflaterInputStream.close(Unknown Source)
at java.util.zip.ZipInputStream.close(Unknown Source)
at org.apache.catalina.util.ExtensionValidator.getManifest(ExtensionValidator.java:375)
at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:184)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
此類異常和jdk的版有點關係.解決辦法:
1.換個高版本的JDK.(未試過)
2.將tomcat的虛擬機(指向jre目錄)指向JDK目錄. 如:tomcat原來的虛擬機是指向:C:\Program Files\Java\jre1.6.0_02\bin\client\jvm.dll 則指向C:\Program Files\Java\jdk1.6.0_02\jre\bin\client\jvm.dll
(本人已測試經過)




6.smartupload 上傳文件時出現 java.lang.NegativeArraySizeException


解決方法:<form method="post" action="smartUpload.jsp" ENCTYPE="multipart/form-data">
這個錯誤仍是不多見到的。由於不多有人GET提交這種上傳的表單。 


上傳文件是出現  java.lang.SecurityException   


解決方案 : smart.setAllowedFilesList("doc,txt,jpg");
    smart.setDeniedFilesList("exe,bat,jsp,htm,html");
           
            檢查文件中設置權限約束的問題


上傳文件時出現 :java.lang.IllegalArgumentException: This path does not exist (1135).


解決方案 : 路徑設置問題 修改設置路徑


7.在tomcat(版本6.0.33)的 catalina.out中發現大量memory leak的日誌




org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@2618d45f]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@51dce88]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
 
這個是因爲tomcat6.0.24之後的版本有加一個監控memory leak的listener 在tomcathome/conf/server.xml
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> 
可是這個監控有bug才致使的誤報


解決方式任選一種 1 把tomcat降級爲6.0.24如下的版本
               2 將tomcat升級爲7.0.6以上的版本
               3 在server.xml中去掉JreMemoryLeakPreventionListener的listener




8.新建類的時候自動生成項目名、包名、時間、開發者名字等等


在MyEclipse選擇Windows菜單下的Preferences->Java->Code Style->Code Templates->New Java files,點擊右邊的Edit Template,在裏面就能夠設置本身喜歡的屬性了,敲進「$」會有自動提醒功能。設置完成以後,每建一個類都會在頂部自動生成本身設置的屬性。




9.Exception in thread "main" java.lang.OutOfMemoryError: Java heap space解決方法


解決方案[轉]
一直都知道能夠設置jvm heap大小,一直用eclipse寫/調試java程序。一直用命令行or console加參數跑程序。現象:在eclipse的配置文件eclipse.ini中設置-vmargs -Xms500m -Xmx1024m,在eclipse中直接run 或者debug某些耗內存的程序時依然出現java.lang.OutOfMemoryError: Java Heap Space錯誤,即一般認爲的內存不足,java虛擬機內存不夠用。而在命令行加這些參數則有效果,不會出錯。這說明一個問題,這些參數根本沒有起做用。今天須要在eclipse裏調試程序,還沒到須要調試的地方就heap error了,在網上搜了不少地方,獲得了最終的答案:
選中被運行的類,點擊菜單‘run->run...’,選擇(x)=Argument標籤頁下的vm arguments框裏
輸入 -Xmx800m, 保存運行。
原來還須要對每一個project單獨設置,汗...


同時設置 hibernate.hbm.xml 文件  <property name="jdbc.batch_size">2000</property>


同時加入 緩存的按期清除操做  
                 eg:    session.save(people);

if((file.length())%20 == 0){
session.flush() ;
session.clear() ;
}






10. 問題 : org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row  count: 0; expected: 1


解決方案:hibernate 中的屬性字段與設置的不一致  修改屬性字段 




11.myeclipse 下載 hibernate ant 工具  網址:


http://www.jboss.org/tools/download.html




12. Ant 中的build.xml 文件默認打開文件設置   


preferences==general==editors==file Associations 




13.修改  jsp 默認的 pageEncoding 


preferences === jsp 修改  encoding 爲 Chinese…… 




14. Tomcat   信息: Not binding factory to JNDI, no JNDI name configured   沒事的,只是警告!!


解決方案:沒有加入配置文件
      File file=new File("./Hibernate.cfg.xml");
      Configuration conf = new Configuration().configure(file);






15.Myeclipse 錯誤 An internal error has occurred 解決辦法。


     給MyEclipse的快捷方式加個參數再從新啓動一次。html

     步驟以下:右鍵選中快捷方式屬性選項,在快捷方式頁,目標一項最後加上-clean選項,如     C:\MyEclipse6\eclipse.exe -clean. 而後從新啓動一下MyEclipse。java

 

 

1, 當tomcat啓動的時候出現下面錯誤: 


[ERROR] org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.EOFException 


或者 
嚴重: IOException while loading persisted sessions: java.io.EOFException 
嚴重: Exception loading sessions from persistent storage 


緣由是: 


是由於保存在硬盤上的session數據讀取失敗,問題彷佛不大,可是若是不處理一下,每次啓動都會出現這個問題,處理方法以下: 


將work(例如:tomcat5.5.20\work\Catalina\localhost\_下面的文件清空,主要是*.ser文件,或者只是刪除掉session.ser亦可。 


根據上面所說,我把個人\work\Catalina\下的內容所有刪除,問題成功解決。在此感謝,要否則有時候啓動tom大傻貓的時候就會見到這個異常 很煩的!




2.警告: No FormBeanConfig found under 'null'


解決: 檢查formbean的配置




3.Referenced file contains errors


換了myeclipse版本出現這樣錯誤:Referenced file contains errors (http://struts.apache.org/dtds/struts-2.0.dtd). For more information, right click on the 
 message in the Problems View and select "Show Details..."
解決辦法: 在myeclipse9.0,      [MyEclipse]-[Files-Editors]-[XML]-[XML Catalog]    查找到  「-//Apache Software Foundation//DTD Struts Configuration 2.1//EN 」   和
「-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN 」 
只需將struts.xml文件  「-//Apache Software Foundation//DTD Struts Configuration 2.0//EN 」   2.0修改成對應的 2.1或是2.1.7   ctrl+s便可


4.嚴重: Exception starting filter struts2 


  java.lang.NoClassDefFoundError: org/


解決方案:導入 commons-lang- 2.5.jar   javasssist-3.11.0.GA.jar




5.










6.Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (18810408 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.


解決方案:將 文件夾 C:\Program Files\MySQL\MySQL Server 5.0 下的 my.ini 文件最後增長 


max_allowed_packet= ..




7.Tomcat啓動時重複出現Socket accept failed錯誤
嚴重: Socket accept failed
java.net.SocketException: select failed
 at java.net.PlainSocketImpl.socketAccept(Native Method)
 at java.net.PlainSocketImpl.accept(Unknown Source)
 at java.net.ServerSocket.implAccept(Unknown Source)
 at java.net.ServerSocket.accept(Unknown Source)
 at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
 at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
 at java.lang.Thread.run(Unknown Source)
2012-3-29 19:11:30 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run 


解決:
開始-cmd-netsh winsock reset-回車-重啓服務器。
簡單來講netsh winsock reset命令含義是重置 Winsock 目錄。若是一臺機器上的Winsock協議配置有問題的話將會致使網絡鏈接等問題,就須要用netsh winsock reset命令來重置Winsock目錄藉以恢復網絡。


winsock是windows網絡編程接口,從Windows XP SP2開始內置了一條命令使用netsh可以對該接口進行修復。


netsh是一個可以經過命令行操做幾乎全部網絡相關設置的接口。好比設置IP,DNS,網卡,無線網絡等。
netsh winsock reset:
先進入netsh
而後進入winsock這個部件
對winsock這個部件執行reset命令。
效果就是重置Winsock。對於一些WinSock被破壞致使的問題有奇效。在netsh出現以前,對於WinSock問題的修復是很是繁瑣的。mysql

 

8;hibernate中遇到的問題web

org.springframework.orm.hibernate3.HibernateQueryException:tb_userinfo is not mapped [from tb_userinfo u order by u.id desc  ]; spring

 

糾結了好長時間,上網一查才知道好多人出現過相同問題,緣由通常有:sql

1,hbm.xml 沒在beans.xml中配置apache

可我有啊編程

<property name="userInfo">windows

<list><value>com.phj.model</value></list> 緩存

 </property>

 

2,find()方法中的類名未寫全 

我原來是

this.getHibernateTemplate().find("from tb_userInfo");

 

應該爲

this.getHibernateTemplate().find("from com.phj.model.UserInfo");

 

 

問題緣由:tb_userInfo 是實體對象名,而非表名,緣由在此!!

 

轉自:http://blog.csdn.net/feihong247/article/details/7927992

相關文章
相關標籤/搜索