title: NoClassDefFoundError - Eclipse - Apache HTTPClient
body: <p>I'm trying to run a simple REST-based app from eclipse juno (jetty web-server) (to be deployed later on google app engine)</p>
  
  <p>Here's my code:  </p>
  
  <pre><code>package co.suhas.live;
  
  import java.io.IOException;
  import javax.servlet.http.*;
  
  import org.apache.http.HttpResponse;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.methods.HttpGet;
  import org.apache.http.impl.client.DefaultHttpClient;
  
  @SuppressWarnings("serial")
  public class AppServlet extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
          throws IOException {
      resp.setContentType("text/plain");
      resp.getWriter().println("Hello, world");
  
      HttpClient httpclient = new DefaultHttpClient();
      HttpGet httpget = new HttpGet(
              "http://www.google.com/search?q=google");
  
      HttpResponse response = httpclient.execute(httpget);
  
      resp.getWriter().println(response.toString());
      }
  }
  </code></pre>
  
  <p>I have added <strong>Apache HTTP Client</strong> jar files to the BUILD PATH.</p>
  
  <p>Including:</p>
  
  <pre><code>commons-codec-1.6.jar
  commons-logging-1.1.1.jar
  fluent-hc-4.2.3.jar
  httpclient-4.2.3.jar
  httpclient-cache-4.2.3.jar
  httpcore-4.2.2.jar
  httpmime-4.2.3.jar
  </code></pre>
  
  <p>But I get this error when I run it on <code>localhost</code>:</p>
  
  <pre><code>HTTP ERROR 500
  
  Problem accessing /app. Reason:
  
  org/apache/http/client/methods/HttpUriRequest
  
  Caused by:
  
  java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
  at java.lang.Class.getDeclaredConstructors0(Native Method)
  at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
  at java.lang.Class.getConstructor0(Class.java:2714)
  at java.lang.Class.newInstance0(Class.java:343)
  at java.lang.Class.newInstance(Class.java:325)
  at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
  at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
  at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
  at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:61)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
  at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
  at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
  at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
  at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:94)
  at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:383)
  at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at org.mortbay.jetty.Server.handle(Server.java:326)
  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
  at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
  at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
  at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
  </code></pre>
  
  <p>What am I doing wrong?</p>