简体   繁体   English

apache http客户端异常

[英]Exception in apache http client

im using eclipse ide and when i run my program everything works fine but when i run the same program on server then it gives me this exception and i have already put my all far files as well as in my lib folder, Please help me to short out to this problem.我使用 eclipse ide,当我运行我的程序时一切正常,但是当我在服务器上运行相同的程序时,它给了我这个异常,我已经把我所有的远文件以及我的 lib 文件夹中,请帮我短解决这个问题。

java.lang.ClassNotFoundException: org.apache.http.HttpRequest
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2836)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    at org.controller.KeyRank.doPost(KeyRank.java:41)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

Here is my code :这是我的代码:

public String readGoogle(String keyword, int page) {
        HttpClient client = new DefaultHttpClient();  

        // Create a method instance
        keyword = keyword.trim();
        keyword = keyword.replaceAll(" ", "+");

        String url = "http://www.google.com/search?q="+keyword+"&start="+page+"&btnG=Google+Search&aq=f&oq=";
        String responseBody = "";
        HttpGet method = new HttpGet(url);  

        //Provide custom retry handler is necessary  
        //:OC:method.getParams().setParameter(HttpConnectionParams.RETRY_HANDLER, new DefaultHttpRequestRetryHandler(3, false));  


        try{  
        //execute the method  


            System.out.println("executing request " + method.getURI());  

            // Create a response handler  
            ResponseHandler responseHandler = new BasicResponseHandler();  
            responseBody = client.execute(method, responseHandler);  
            System.out.println("----------------------------------------");  
            System.out.println(responseBody);  
            System.out.println("----------------------------------------");  



            } catch (HTTPException e) {  

                    System.err.println("Fatal protocol violation: " + e.getMessage());  
                    e.printStackTrace();  

                } catch (IOException e) {  

                    System.err.println("Fatal transport error: " + e.getMessage());  
                    e.printStackTrace();  
                } finally {  

                    //release the connection  
              method.releaseConnection();  

        }
        return responseBody;

    }

Add Http core jar to your build path, find the required jar from this url.将 Http 核心 jar 添加到您的构建路径,从此 url 中找到所需的 jar。 http://www.java2s.com/Code/Jar/h/Downloadhttpcorejar.htm http://www.java2s.com/Code/Jar/h/Downloadhttpcorejar.htm

deploy the jar and then compile, your error will be resolved.部署jar然后编译,你的错误将得到解决。

Without your classpath configuration and knowledge about the web server you are deploying your application to, it is not easy to help but from the look of things, it seems you are missing the HttpCore jar in your deployment environment.如果没有您的classpath configuration和有关将应用程序部署到的 Web 服务器的知识,这并不容易,但从外观上看,您似乎缺少部署环境中的HttpCore jar。

The missing class is found in that jar.在那个 jar 中找到了缺少的类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM