x509hostnameverifier org httprequestinterceptor httpcomponents conn java json gwt servlets
Descargar archivo Zip desde aquí

httprequestinterceptor - java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient



org apache http java (5)

Estoy tratando de hacer una solicitud de obtención del servlet GWT para obtener la respuesta JSON de un servicio web. A continuación está el código en mi servlet:

public String getQueData() throws IllegalArgumentException { String message = null; try { HttpClient httpclient = new DefaultHttpClient(); JSONParser parser = new JSONParser(); String url = "working - url"; HttpResponse response = null; response = httpclient.execute(new HttpGet(url)); JSONObject json_data = null; json_data = (JSONObject)parser.parse(EntityUtils.toString(response.getEntity())); JSONArray results = (JSONArray)json_data.get("result"); for (Object queid : results) { message = message.concat((String) ((JSONObject)queid).get("id")); message = message.concat("/t"); message = message.concat((String) ((JSONObject)queid).get("owner")); message = message.concat("/n"); } } catch (Exception e) { message = e.toString(); } return message; }

Obteniendo la siguiente excepción al tratar de hacer una solicitud get desde un servlet GWT.

java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) 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.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) 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:122) 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:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:362) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 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) Caused by: java.lang.ClassNotFoundException: org.apache.http.client.HttpClient at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

¿Cuál podría ser la posible causa de esta excepción? ¿Cómo podría ser eliminado?

Estoy usando jdk1.6.0_30 en ubuntu 10.04.


¿Cuál podría ser la posible causa de esta excepción?

Es posible que no tengas Tarro apropiado en tu camino de clase.

¿Cómo podría ser eliminado?

Al poner el jar HTTPClient en su ruta de clase. Si se trata de una aplicación web, copie Jar en WEB-INF/lib si es independiente, asegúrese de tener este jar en la ruta de clase o explícitamente establecido usando la opción -cp

como dice el doc ,

Lanzado si la máquina virtual de Java o una instancia de ClassLoader intenta cargar en la definición de una clase (como parte de una llamada de método normal o como parte de la creación de una nueva instancia utilizando la nueva expresión) y no se pudo encontrar ninguna definición de la clase.

La definición de clase buscada existía cuando se compilaba la clase en ejecución, pero ya no se puede encontrar la definición.


Estaba enfrentando el mismo problema. En mi caso, tenía una dependencia de httpclient con una versión anterior, mientras que sendgrid requería una versión más nueva de httpclient. Solo asegúrate de que la versión de httpclient sea la correcta en tus dependencias y funcionaría bien.


Este problema ocurre si hay diferentes versiones de jar. Especialmente versiones de httpcore y httpclient. Use las mismas versiones de httpcore y httpclient.


Resolví este problema por mí mismo, encontré que había dos archivos de http-client con una versión diferente de otros archivos jar dependientes. Por lo tanto, es posible que la versión se haya colapsado entre los archivos de las bibliotecas, por lo tanto, elimine todos los archivos de bibliotecas anteriores / anteriores y vuelva a agregar los archivos jar de la carpeta lib de este archivo zip:

Descargar archivo Zip desde aquí


Si es un proyecto maven, agrega la dependencia a continuación en tu archivo pom

<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.4</version> </dependency>