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 就可以改了!




3、.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的快捷方式加個參數再重新啟動一次。

     步驟如下:右鍵選中快捷方式屬性選項,在快捷方式頁,目標一項最后加上-clean選項,如     C:\MyEclipse6\eclipse.exe -clean. 然后重新啟動一下MyEclipse。

 

 

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問題的修復是非常繁瑣的。

 

8;hibernate中遇到的問題

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

 

糾結了好長時間,上網一查才知道好多人出現過相同問題,原因一般有:

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

可我有啊

<property name="userInfo">

<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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM