(已解決)按照老師講的,我的出現(xiàn)下邊錯誤是什么原因呢,求幫助
信息: Server startup in 2652 ms
123
十二月 31, 2016 3:17:31 下午 org.apache.catalina.core.StandardWrapperValve invoke
嚴(yán)重: Servlet.service() for servlet [search] in context with path [/ajaxtest] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: net.sf.json.JSONArray
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
at com.imooc.SearchServlet.doGet(SearchServlet.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
package?com.imooc; import?java.io.IOException; import?java.util.ArrayList; import?java.util.List; import?javax.servlet.ServletException; import?javax.servlet.http.HttpServlet; import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse; import?net.sf.json.JSONArray; public?class?SearchServlet?extends?HttpServlet?{ //這些是模擬數(shù)據(jù) static?List<String>?datas?=?new?ArrayList<String>(); static?{ datas.add("ajax"); datas.add("ajaxpost"); datas.add("becky"); datas.add("bill"); datas.add("james"); datas.add("jerry"); } @Override protected?void?doGet(HttpServletRequest?request,?HttpServletResponse?response) throws?ServletException,?IOException?{ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); System.out.println("123"); //首先獲得客戶端發(fā)送來的數(shù)據(jù)keyword String?keyword?=?request.getParameter("keyword"); //獲得關(guān)鍵字后進(jìn)行處理,得到關(guān)聯(lián)數(shù)據(jù) List<String>?listData?=?getData(keyword); //返回json格式 System.out.println(JSONArray.fromObject(listData)); // response.getWriter().write(JSONArray.fromObject(listData).toString()); } //獲得關(guān)聯(lián)數(shù)據(jù)的方法 public?List<String>?getData(String?keyword){ List<String>?list?=??new?ArrayList<String>(); for?(String?data:datas){ if?(data.contains(keyword)){ list.add(data); } } return?list; } }
<%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%> <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"> <html> ??<head> ??<style?type="text/css"> ?? #mydiv{ ?? position:absolute; ?? left:50%; ?? top:50%; ?? margin-left:-200px; ?? margin-top:-50; ?? } ??</style> ?? ??<script?type="text/javascript"> ?? var?xmlHttp; ?? //獲得用戶輸入內(nèi)容?的關(guān)聯(lián)信息?的函數(shù) ?? function?getMoreContents(){ ?? //首先要獲得用戶輸入的內(nèi)容 ?? var?content?=?document.getElementById("keyword"); ?? if?(content.value?==?""){ ?? return; ?? } ?? //然后要給服務(wù)器發(fā)送用戶輸入的內(nèi)容,因?yàn)槲覀儾捎玫氖莂jax異步發(fā)送數(shù)據(jù); ?? //所以我們要使用一個(gè)對象,叫做XmlHttp對象 ?? xmlHttp?=?createXMLHttp();//獲得xmlHttp對象 ?? //要給服務(wù)器發(fā)送數(shù)據(jù) ?? var?url?=?"search?keyword="+escape(content.val); ?? //true表示javascript腳本會在send方法之后繼續(xù)執(zhí)行,而不會等待來自服務(wù)器的響應(yīng) ?? xmlHttp.open("GET",?url,?true); ?? //xmlHttp綁定回調(diào)方法,這個(gè)回調(diào)方法會在xmlHttp狀態(tài)改變的時(shí)候被調(diào)用 ?? //xmlhttp的轉(zhuǎn)態(tài)為0-4,我們只關(guān)心4(compete)這個(gè)狀態(tài) ?? //所以說,當(dāng)完成之后再調(diào)用回調(diào)方法才有意義。 ?? xmlHttp.onreadystatechange?=?callback; ?? xmlHttp.send(null); ?? } ?? //獲得XMLHttp對象 ?? function?createXMLHttp(){ ?? //對于大多數(shù)瀏覽器都使用 ?? var?xmlHttp; ?? if?(window.XMLHttpRequest){ ?? xmlHttp?=?new?XMLHttpRequest(); ?? ?? } ?? //要考慮瀏覽器的兼容性 ?? if?(window.ActiveXObject){ ?? xmlHttp?=?new?ActiveXObject("Microsoft.XMLHTTP"); ?? if?(!xmlHttp){ ?? xmlHttp?=?new?ActiveXObject("Msxml.XMLHTTP"); ?? } ?? } ?? return?xmlHttp; ?? } ?? //回調(diào)函數(shù) ?? function?callback(){ ?? //4代表完成 ?? if?(xmlHttp.readyState?==?4){ ?? //200代表服務(wù)器響應(yīng)成功 ?? //404代表資源未找到,500代表服務(wù)器內(nèi)部錯誤 ?? if?(xmlHttp.status?==?200){ ?? //交互成功,獲得相應(yīng)的響應(yīng)數(shù)據(jù),是文本格式 ?? var?result?=?xmlHttp.responseText; ?? //解析獲得數(shù)據(jù) ?? var?json?=?eval("("+result+")"); ?? //獲得數(shù)據(jù)后就可以動態(tài)的顯示這些數(shù)據(jù)了,把這些數(shù)據(jù)展示到輸入框的下面 ?? alert(json); ?? } ?? } ?? } ?? //設(shè)置關(guān)聯(lián)數(shù)據(jù)的展示,參數(shù)代表的是服務(wù)器傳遞過來的關(guān)聯(lián)數(shù)據(jù) ?? function?setContent(contents){ ?? //首先獲取關(guān)聯(lián)數(shù)據(jù)的長度,以此來確定生成多少<tr></tr> ?? var?size?=?contens.length; ?? //設(shè)置內(nèi)容 ?? for(var?i?=?0;i?<?size;??i++){ ?? var?nextNode?=?content[i];//代表的是json格式數(shù)據(jù)的第i個(gè)元素 ?? var?tr?=??document.createElement("tr"); ?? var?td?=?document.createElement("td"); ?? td.setAttribute("border",?"0"); ?? td.setAttribute("bg_color",?"#FFAFA"); ?? td.onmouseover?=?function()?{ ?? this.className?=?'mouseOver'; ?? }; ?? td.onmouseout?=?function()?{ ?? this.className?=?'mouseOut'; ?? }; ?? td.onclick?=?function()?{ ?? //這個(gè)方法實(shí)現(xiàn)的是:當(dāng)用鼠標(biāo)點(diǎn)擊一個(gè)關(guān)聯(lián)的數(shù)據(jù)時(shí),所點(diǎn)擊關(guān)聯(lián)數(shù)據(jù)自動設(shè)置為輸入框數(shù)據(jù) ?? ?? }; ?? var?text?=?document.createTextNode(nextNode); ?? td.appendChild(text); ?? tr.appendChild(td); ?? document.getElementById("content_table_body").appendChild(tr); ?? } ?? } ??</script> ??</head> ?? ??<body> ????<div?id="mydiv"> ????<!--?輸入框?--> ????<input?type="text"?size="60"?id="keyword"?onkeyup="getMoreContents()"/> ????<input?type="button"?value="百度一下?"?width="50px"> ????<!--?下面是內(nèi)容展示區(qū)域?--> ????<div?id="popDiv"> ???? <table?id="content_table"?bgcolor="#FFFAFA"?border="0"?cellspacing="0"?cellpading="0"> ???? <tbody?id="content_table_body"> ???? <!--?動態(tài)查詢出來的數(shù)據(jù)顯示在這個(gè)地方?--> ???? <tr><td>ajax</td></tr> ???? <tr><td>ajax1</td></tr> ???? <tr><td>ajax2</td></tr> ???? </tbody> ???? </table> ????</div> ????</div> ??</body> </html>
<?xml?version="1.0"?encoding="UTF-8"?> <web-app?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns="http://java.sun.com/xml/ns/javaee"?xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"?id="WebApp_ID"?version="3.0"> ??<display-name>ajaxtest</display-name> ??<welcome-file-list> ????<welcome-file>index.html</welcome-file> ????<welcome-file>index.htm</welcome-file> ????<welcome-file>index.jsp</welcome-file> ????<welcome-file>default.html</welcome-file> ????<welcome-file>default.htm</welcome-file> ????<welcome-file>default.jsp</welcome-file> ??</welcome-file-list> ??<servlet> ?? <servlet-name>search</servlet-name> ?? <servlet-class>com.imooc.SearchServlet</servlet-class> ??</servlet> ?? ??<servlet-mapping> ?? <servlet-name>search</servlet-name> ?? <url-pattern>/search</url-pattern> ??</servlet-mapping> </web-app>
2017-12-06
對的,需要重啟myeclipse
2017-01-19
我也遇到這樣的問題,我用eclipse,jar包也復(fù)制了,但是問題還是沒有解決。
2016-12-31
已解決,解決辦法:打開myeclipse,將所需要的jar包復(fù)制到lib文件夾里面,重啟項(xiàng)目,問題搞定
2016-12-31
我在想是不是有可能導(dǎo)的包有問題