令我崩潰欲死的tomact版本問題

最近做一個項目,裏邊要用到javawebservice,最終決定採用Rest 架構風格的web 服務。由於本人對java 這一套工具不是很熟悉。以前只寫過控制檯的helloword,然後,就直接到 rest 框架選擇 + web .中間的曲折讓我d疼不已。


既然今天的題目是tomact的版本,我就先把中間的曲折放一放,等些rest 的時候再說


做rest的一個入門示例的時候,我在eclipse上部署了tomact7.0 用的eclipse是helios的。然後,建立 動態web項目,在網上找到 rest的入門代碼之後,開始運行,就爆出 


 Error configuring application listener of class org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2011-9-9 0:54:17 org.apache.catalina.core.StandardContext listenerStart


如此錯誤,無語啊。然後就開始痛苦的尋找解答過程。最初以爲是沒有類,因爲eclipse用的少,以爲是自己包的引用有問題,搞半天,不行。然後就找什麼原因會導致 ClassNotFound,當然,我已經很確定的查過了,在引入的包是有該類的。在網上翻與classnotfound相關的東西。有的說 包衝突會引起這個問題,挨個jar查看,果然有包重複,網上說刪掉ok。結果,我這不行。找啊找啊,試了N中辦法。他nainai的還不行。我這個人屬於那種遇到一個問題,不解決不爽的人。結果這個問題搞了幾天!!都沒搞定。當然中間還有其他事做。崩潰啊。在stackflow上也有一個小夥子遇到同樣的問題,結果 回答的人的英語答案,我理解的不好,反正沒成功。我真的幾欲崩潰 了。。

最終我開始懷疑是不是我的環境的問題。因爲我是 win7 64位的。eclipse版本相對高一點。當時壓根沒想到tomact7.0 的事。然後就在同學那試。

同學的環境是 32 系統,myeclipse.拷過去之後,運行之後成功了。我d疼啊,想必大家理解不了當時一個解決了n天都沒有解決的問題的人發現在別人機器上完好運行的 人的心情。。。在myeclipse能成功,爲啥在我這不行!

難道真的是64位同32的問題??

這個不好說啊,總不能讓我換系統吧

還有就是tomact配置問題了,因爲我不敢確定我的tomact配置沒有問題,因爲對它實在不熟。然後就在網上狂翻 tomact配置。不行啊,卸載windows 安裝版的,換成免安裝的,32換 64的,找配置,亂七八糟。大爺的還不行。版本?可能是版本,我就下6.0的,其實每次當你卸載的toamct之後,又創建新的tomactru 服務器的時候,很有可能會出現Cannot create a server using the selected type的錯誤,在網上找到  

還有另一種方式: 
在當前工作區中如下路徑:/.metadata/.plugins/org.eclipse.core.runtime/.settings,記住不是eclispe程序的路徑。 

把其下org.eclipse.wst.server.core.prefs和 org.eclipse.jst.server.tomcat.core.prefs這兩個文件去掉 

後重啓eclipse即可。 

好吧,感謝。這個可以用。當然,你需要重新配置你的tomact路徑。

然後,換成6.0其實還有問題,我的web 選擇版本爲3.0 哎太新了,不行啊。結果創建 6.0server時就出錯。

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules

網上又找到

------------------------------------
在project的.setting folder下面,有個名爲org.eclipse.wst.common.project.facet.core.xml的文件,裏面配置有各種版本信息。此時,按照本機配置修改這個文件,問題就解決了。

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v5.5"/>
<fixed facet="jst.web"/>
<fixed facet="jst.java"/>
<installed facet="jst.java" version="5.0"/>
<installed facet="jst.web" version="2.4"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>


像我這樣的錯誤,可以下載Tomcat 7。0解決,不過我閒麻煩,乾脆就在配置文件中把<installed facet="jst.web" version="3.0"/> 改成低些的版本version="2.5" 就好了

-------------------------------
ps~你可以下7.0,我不管,反正我不會輕易下了。
ok。改。重新運行。

我去啊,終於成功了。太難得了。


意識到tomact版本之前,我一直糾結於我的憑什麼不行。想的我頭大頭疼,一直爆粗口。哎,程序員遇到自己搞不定的錯誤很糾結啊,不爆兩句怎麼緩解壓力啊。。

過一短時間,把這個rest的h入門程序貼上來。分析一下。

ok。還要集成到gae裏邊。不知道還會遇到什麼錯。


哦,忘了說了,編譯器不是萬能的,也有可能是坑爹的.

啊,那會把我搞得快瘋了。。。

以前做一個讀取pdf文件也是版本問題。用pdfbox。有異常,在後邊版本中解決的。我也是很悲劇的研究了好久。。。。

還有eclipse插件版本選擇,還有一些列與版本相關的東西。。神那,快來配一個人把這理的更清楚一點。。。。。


                                                                         10年九月十日,玩。速比疾書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章