title: Restful webservices - NoClassDefFoundError: org/glassfish/jersey/ExtendedConfig
body: <p>So I created the webservice in <a href="https://stackoverflow.com/questions/30260313/tomcat-with-rest-http-status-500-servlet-execution-threw-an-exception">this thread</a> and finally I managed to solve the problem. Now I'm trying to consume this webservice.</p>
  
  <p>I've created a new web project on Netbeans and I'm using Apache Tomcat. Here's the code to consume the webservice. I've gone through some tutorials to produce this code.</p>
  
  <pre><code>package com.client;
  
  import java.net.URI;
  
  import javax.ws.rs.client.Client;
  import javax.ws.rs.client.ClientBuilder;
  import javax.ws.rs.client.WebTarget;
  import javax.ws.rs.core.MediaType;
  import javax.ws.rs.core.Response;
  import javax.ws.rs.core.UriBuilder;
  
  import org.glassfish.jersey.client.ClientConfig;
  
  public class HelloClient {
  
  
    public void consumeRest(){
  
      ClientConfig config = new ClientConfig();
  
      Client client = ClientBuilder.newClient(config);
  
      WebTarget target = client.target(getBaseURI());
  
      System.out.println("response");
  
      System.out.println(target.path("hello").path("world").request()
  
      .accept(MediaType.APPLICATION_JSON).get(Response.class)
  
      .toString());
  
      }
  
  
    private URI getBaseURI() {
  
      return UriBuilder.fromUri("http://localhost:8084/restful_example").build();
  
    }
  
  } 
  </code></pre>
  
  <p>I've created a main class to call the consume method. When I run it, I get this exception:</p>
  
  <pre><code>Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/jersey/ExtendedConfig
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at com.client.HelloClient.consumeRest(HelloClient.java:29)
      at com.client.main.main(main.java:16)
  Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.ExtendedConfig
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      ... 14 more
  Java Result: 1
  </code></pre>
  
  <p>I guess it's a libs problem but I couldn't solve it. Using only JAX-RS 2.0 is not sufficient, so I'm also using Jersey libs.</p>
  
  <p>What's wrong here? Is this the correct way to consume this webservice? I've seen some other versions and I'm not sure which one to use.</p>