- 前端代碼我就不展示了 ,下面說明下我遇到問題的情況,如果不想看可以直接划到黃色字體部分直接找解決方法哦~~(相關jar包我會放在雲中,想要的自己下載哦,鏈接在視頻最下面!!)
- 我的pom文件,如下,導入json-lib請注意添加 <classifier>jdk15</classifier>這個屬性,json-lib支持jdk1.3,jdk1.5,要不然不會添加json-lib包
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
servlet的方法,我的小demo主要是寫一個類似於百度的那個搜索框
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //首先獲得客戶端發送過來的關鍵字keyword String keyword = request.getParameter("keyword"); //獲得關鍵字后進行處理得到關聯數據 List<String> listData = getDate(keyword); //返回json格式 JSONArray jsonArray = JSONArray.fromObject(listData); System.out.println(jsonArray); System.out.println(jsonArray.getClass()); }
項目是tomcat容器啟動,當我啟動后,沒有出現代碼報錯提示,正常啟動,只是當我訪問url時,本應該打印出listData數據出來,結果沒有打印,我點擊下面這張圖紅色箭頭指向,查看tomcat的日志,發現報了錯,我就不貼圖了,錯誤提示一般是
嚴重 [http-nio-8080-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [search] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException:********* 沒有找到類的錯誤,一般是因為沒有引入jar所導致的。
下面這張圖是我在json-lib官方網站看到的,說是必須要這面的這些包文件,而用maven引入json-lib2.4版本所有的包就都會有,也就是說我項目中是有這些包文件的。記得上面我那些報錯信息是在tomcat中提示的,難道我tomcat出了問題,經過我多方面查找,問題找到了。
問題的確出在了tomcat上面,通常我們運行web項目,必須需要一個服務容器,那個容器有很多種,而我使用的是tomcat,我們必須把項目打成war包並上傳到tomcat的webapps目錄中,通過配置tomcat的conf目錄下面的server.xml文件制定項目的目錄節點,開啟tomcat服務,然后才能訪問項目。而我們項目運行時,jar文件本應該在war包的/WEB-INF/lib目錄下,找不到還會去tomcat容器的lib目錄下。最有可能是因為運行項目時,jar文件並沒有部署進去(我也是猜的,畢竟小白一枚)
解決方法:找到本機的tomcat服務器,進入lib目錄將項目用到的關於json的 6 個jar包文件拖進lib目錄下,分別是commons-lang-2.5 ,commons-collections-3.2.1,ezmorph-1.0.6,commons-beanutils-1.8.0,json-lib-2.4-jdk15,commons-logging-1.1.1,
將這些文件拖進lib目錄下,重新運行項目,請求servlet,成功返回json類性的數據
成功返回
ps:本人第一次寫這種博客,文字可能有點不流暢或者墨跡或者中心表達不夠明確,請各位大哥大神見諒,寫這個的原因主要是這個問題困擾我一整天,網上找了半天也沒有找到,所及當我自己解決后就想到寫這個了,本來想寫筆記來着,但是自上次一不小心刪掉全部筆記后痛心了我好久,而且筆記我做了也自己一個人看,還不如下博客。所以,以后我碰到了一些難解的問題還是會繼續寫的(雖然寫的不好),謝謝各位觀看!!加油!!!!!!!!!
鏈接:https://pan.baidu.com/s/1JBqW5y7wRYmk-s2-XfBZFw
提取碼:gbt7